@@ -45,8 +45,8 @@ managed by different server instances, can exist on the same machine.
45
45
-->
46
46
<para>
47
47
传统上,数据库集群所需要的配置和数据文件都存储在集群的数据目录里,
48
- 通常用环境变量 <varname>PGDATA</>来引用。 (用于定义它的环境变量名称之后)
49
- <varname>PGDATA</>的一个常见位值 <filename>/var/lib/pgsql/data</>。
48
+ 该数据目录通常记录在环境变量 <varname>PGDATA</>中 (用于定义它的环境变量名称之后)。
49
+ 一个较常用的 <varname>PGDATA</>值是 <filename>/var/lib/pgsql/data</>。
50
50
不同服务器实例管理的多个集群,
51
51
可以在同一台机器上共存。
52
52
</para>
@@ -64,10 +64,10 @@ later, it is possible to place them elsewhere).
64
64
-->
65
65
<para>
66
66
<varname>PGDATA</>目录包含一些子目录和控制文件,在<xref linkend="pgdata-contents-table">中显示。
67
- 除了这些必要的东西外,集群配置文件<filename>postgresql.conf</filename>,
67
+ 除了这些必要的东西外,集群配置文件<filename>postgresql.conf</filename>、
68
68
<filename>pg_hba.conf</filename>和
69
- <filename>pg_ident.conf</filename>通常都存储在 <varname>PGDATA</>这里。
70
- (尽管<productname>PostgreSQL</productname> 8.0和之后版本中 ,有可能把它们放在其他地方)。
69
+ <filename>pg_ident.conf</filename>通常也存储在 <varname>PGDATA</>这里。
70
+ (尽管<productname>PostgreSQL</productname> 8.0和之后版本 ,有可能把它们放在其他地方)。
71
71
72
72
</para>
73
73
109
109
<!--
110
110
<entry>Subdirectory containing per-database subdirectories</entry>
111
111
-->
112
- <entry>包含与每个数据库对应的子目录的子目录 </entry>
112
+ <entry>与每个数据库对应的子目录存储在该目录中 </entry>
113
113
</row>
114
114
115
115
<row>
118
118
<entry>Subdirectory containing cluster-wide tables, such as
119
119
<structname>pg_database</></entry>
120
120
-->
121
- <entry>包含集群范围的表的子目录 ,比如<structname>pg_database</></entry>
121
+ <entry>集群范围的表存储在该目录中 ,比如<structname>pg_database</></entry>
122
122
</row>
123
123
124
124
<row>
168
168
<entry>Subdirectory containing temporary files for the statistics
169
169
subsystem</entry>
170
170
-->
171
- <entry>包含临时文件的统计子系统的子目录 </entry>
171
+ <entry>用于统计子系统的临时文件存储在该目录中 </entry>
172
172
</row>
173
173
174
174
<row>
@@ -226,8 +226,8 @@ last started with</entry>
226
226
(this file is not present after server shutdown)</entry>
227
227
-->
228
228
<entry>一个锁文件,
229
- 记录着当前服务器主进程ID (PID),集群数据目录路径,服务器主起始时间戳 ,端口号,
230
- Unix-域套接目录路径(Windows上空 ),第一个有效listen_address(IP地址或者<literal>*</>,
229
+ 记录当前服务器主进程ID (PID),集群数据目录路径,服务器启动时间戳 ,端口号,
230
+ Unix-域套接目录路径(Windows上为空 ),第一个有效listen_address(IP地址或者<literal>*</>,
231
231
如果不监听TCP,则为空),以及共享内存段ID,
232
232
(在服务器关闭之后此文件就不存在了)。</entry>
233
233
</row>
@@ -248,8 +248,8 @@ there.
248
248
<para>
249
249
对于集群里的每个数据库,在<varname>PGDATA</><filename>/base</>里都有对应的一个子目录,
250
250
子目录的名字是该数据库在<structname>pg_database</>里的OID。
251
- 这个子目录是该数据库文件的缺省位置 ;特别值得一提的是,
252
- 该数据库的系统表存储在此 。
251
+ 这个目录是数据库文件的缺省位置 ;特别值得一提的是,
252
+ 该数据库的系统表存储于此 。
253
253
</para>
254
254
255
255
<!--
@@ -273,21 +273,20 @@ with the suffix <literal>_init</literal> (see <xref linkend="storage-init">).
273
273
</para>
274
274
-->
275
275
<para>
276
- 每个表和索引都存储在独立的文件里,对于普通关系,这些文件
277
- 以该表或者该索引的<firstterm>filenode</>号命名,
278
- 该号码可以在<structname>pg_class</>.<structfield>relfilenode</>中找到。
279
- 但是对于临时性关系,文件名称形式<literal>t<replaceable>BBB</>_<replaceable>FFF</></>,
280
- 其中<replaceable>BBB</>是创建文件的后端ID,并且<replaceable>FFF</>是filenode号。
281
- 在任何情况下,除了主文件(a/k/a主叉文件),
282
-
283
- 每个表和索引有个<firstterm>自由空间映射</>(参阅<xref linkend="storage-fsm">),
284
- 其用来存储关于在关系中可用的自由空间的信息。
285
- 自用空间映射存储在文件名为filenode编号加上后缀<literal>_fsm</>的文件里。
286
- 表也有<firstterm>可见映射</>,存储在一个分叉文件,后缀为<literal>_vm</>,
287
- 用来跟踪那些已知没有死行的页,
288
- 该可见映射在<xref linkend="storage-vm">进一步的描述。
289
- 未记录的表和索引有三分之一分支,被称之为初始化分支,使用后缀<literal>_init</literal>
290
- 存储在分支中(参阅<xref linkend="storage-init">)。
276
+ 每个表和索引都存储在单独的文件中,对于普通关系,这些文件
277
+ 以该表或者该索引的<firstterm>filenode</>值命名,
278
+ 该值可以在<structname>pg_class</>.<structfield>relfilenode</>中找到。
279
+ 但对于临时关系,其以<literal>t<replaceable>BBB</>_<replaceable>FFF</></>这样的形式作为文件名,
280
+ 其中<replaceable>BBB</>是创建文件的后端ID,<replaceable>FFF</>是filenode值。
281
+ 在任何情况下,除了主文件(a/k/a主分支文件),
282
+ 每个表和索引有<firstterm>空闲空间映射</>(参阅<xref linkend="storage-fsm">),
283
+ 其用来存储关系中空闲空间的相关信息。
284
+ 空闲空间映射存储在以filenode值加后缀<literal>_fsm</>命名的文件中。
285
+ 表也有<firstterm>可见映射</>,存储在一个后缀为<literal>_vm</>的分支文件中,
286
+ 用来跟踪那些没有无效元组的页,
287
+ 该可见映射在<xref linkend="storage-vm">中进一步的描述。
288
+ 不记录日志的表和索引有第三个分支,被称之为初始化分支,其存储在一个后缀为<literal>_init</literal>
289
+ 的分支文件中(参阅<xref linkend="storage-init">)。
291
290
</para>
292
291
293
292
<caution>
@@ -306,14 +305,14 @@ function.
306
305
</para>
307
306
-->
308
307
<para>
309
- 请注意,虽然一个表的filenode通常和它的OID相同,但实际上并<emphasis>不 </>必须如此;
308
+ 请注意,虽然一个表的filenode通常和它的OID相同,但实际上并<emphasis>非 </>必须如此;
310
309
有些操作,比如<command>TRUNCATE</>, <command>REINDEX</>, <command>CLUSTER</>
311
- 以及一些特殊的<command>ALTER TABLE</>形式 ,
312
- 都可以改变filenode而同时保留OID。避免假定filenode和表OID相同 。
310
+ 以及一些特殊的<command>ALTER TABLE</>命令 ,
311
+ 都可以改变filenode而同时保留OID。应该避免filenode和表OID相同这样的假定 。
313
312
还有,对于某种系统表包括<structname>pg_class</>自身,
314
313
<structname>pg_class</>.<structfield>relfilenode</>包含零。
315
- 这些表的实际的filenode编号存储在低级别的数据结构 ,
316
- 并且可以使用 <function>pg_relation_filenode()</>函数获取。
314
+ 这些表的实际的filenode值存储在更底层的数据结构中 ,
315
+ 可以使用 <function>pg_relation_filenode()</>函数获取。
317
316
</para>
318
317
</caution>
319
318
@@ -331,13 +330,13 @@ segments as well, though this is unlikely to happen in practice.
331
330
</para>
332
331
-->
333
332
<para>
334
- 在表或者索引超过1 GB之后,将分割成1GB大小的 <firstterm>段</>。
333
+ 在表或者索引超过1GB之后,将被分割为1GB大小的 <firstterm>段</>。
335
334
第一个段的文件名和filenode相同;
336
- 随后的段名名为filenode .1, filenode.2 ... 等等。
337
- 这样的安排避免了在某些平台上的有文件大小限制的问题 。
335
+ 随后的段名为filenode .1, filenode.2 ... 等等。
336
+ 这样可以避免在某些平台上文件大小限制的问题 。
338
337
(实际上,1GB只是缺省的段大小。当构建<productname>PostgreSQL</>时,
339
338
可以使用配置选项<option>--with-segsize</option>调整段大小。)
340
- 原则上,自由空间映射和可见映射叉文件可能需要多个段 ,
339
+ 原则上,空闲空间映射和可见映射分支文件可能需要多个段 ,
341
340
尽管这在实践中不可能发生。
342
341
</para>
343
342
@@ -356,7 +355,7 @@ See <xref linkend="storage-toast"> for more information.
356
355
那么就会有个相关联的<firstterm>TOAST</>表,
357
356
用于存储无法在表的数据行中放置的超大行外数据。
358
357
如果有的话,<structname>pg_class</>.<structfield>reltoastrelid</>
359
- 从一个表链接到它的 <acronym>TOAST</>表。
358
+ 会从一个表链接到它的 <acronym>TOAST</>表。
360
359
参阅<xref linkend="storage-toast">获取更多信息。
361
360
</para>
362
361
@@ -367,7 +366,7 @@ The contents of tables and indexes are discussed further in
367
366
</para>
368
367
-->
369
368
<para>
370
- 表的内容和索引在 <xref linkend="storage-page-layout">中有讨论。
369
+ 表和索引的内容在 <xref linkend="storage-page-layout">中有讨论。
371
370
</para>
372
371
373
372
<!--
@@ -400,14 +399,14 @@ tablespace is not accessed through <filename>pg_tblspc</>, but corresponds to
400
399
这个符号连接是用表空间的 OID 命名的。
401
400
在物理的表空间目录内部,有个依赖<productname>PostgreSQL</>服务器版本的命名的子目录,
402
401
如<literal>PG_9.0_201008051</>。
403
- (使用这个子目录的原因是为了让后续版本的数据库不产生冲突的情况下 ,
402
+ (使用这个子目录的原因是为了让后续版本的数据库在不产生冲突的情况下 ,
404
403
可以使用相同的<command>CREATE TABLESPACE</>位置值。)
405
- 在有指定版本的子目录里,每个在表空间中有元素的数据库有个子目录 ,
406
- 命名为数据库的OID。表和索引存储在那个目录 ,
407
- 使用filenode命名方法 。<literal>pg_default</>没有通过 <filename>pg_tblspc</>关联 ,
408
- 但是对应 <varname>PGDATA</><filename>/base</>。类似的还有,
409
- <literal>pg_global</>没有通过 <filename>pg_tblspc</>关联 ,
410
- 而是对应 <varname>PGDATA</><filename>/global</>。
404
+ 在指定版本的子目录里,每个有元素的数据库都会在表空间中有一个子目录 ,
405
+ 该子目录以数据库的OID命名。表和索引存储在该目录中 ,
406
+ 使用filenode命名 。<literal>pg_default</>表空间不用通过 <filename>pg_tblspc</>访问 ,
407
+ 其与 <varname>PGDATA</><filename>/base</>目录对应。与此类似
408
+ <literal>pg_global</>也不用通过 <filename>pg_tblspc</>访问 ,
409
+ 其与 <varname>PGDATA</><filename>/global</>目录对应 。
411
410
</para>
412
411
413
412
<!--
@@ -422,10 +421,10 @@ with the relation.
422
421
</para>
423
422
-->
424
423
<para>
425
- <function>pg_relation_filepath()</>函数用于显示任何关系的全路径。 (相对于<varname>PGDATA</>)
426
- 替代记住许多上述规则,它往往是有用的 。但是请记住,
427
- 这个函数只给了关系主分叉文件的第一部分的名称 —你可能还需要一段
428
- 数字和/或<literal>_fsm</> or <literal>_vm</>用来找到关联该关系的所有文件 。
424
+ <function>pg_relation_filepath()</>函数用于显示任何关系的完整路径 (相对于<varname>PGDATA</>),
425
+ 与记住上述规则相比,该函数是非常有用的 。但是请记住,
426
+ 这个函数只给了关系主分支文件的第一部分的名称 —你可能还需要在其后添加
427
+ 数字和/或<literal>_fsm</> or <literal>_vm</>后缀来找到与该关系相关的所有文件 。
429
428
</para>
430
429
431
430
<!--
@@ -441,11 +440,11 @@ where <replaceable>PPP</> is the PID of the owning backend and
441
440
</para>
442
441
-->
443
442
<para>
444
- 创建临时文件(对于操作如更多数据于可适合内存的排序)
445
- 在<varname>PGDATA</><filename>/base/pgsql_tmp</>,或如果表空间不是指定的 <literal>pg_default</>,
446
- 在表空间目录下的 <filename>pgsql_tmp</>子目录 。
447
- 临时文件的名表示为 <filename>pgsql_tmp<replaceable>PPP</>.<replaceable>NNN</></filename>,
448
- 这里<replaceable>PPP</>是后台拥有的PID和 <replaceable>NNN</>是后台来区分不同的临时文件 。
443
+ 临时文件(对于一些操作,如对超过内存大小的数据进行排序)会被创建,其通常
444
+ 在<varname>PGDATA</><filename>/base/pgsql_tmp</>目录下,如果表空间不是 <literal>pg_default</>,
445
+ 则在表空间目录的 <filename>pgsql_tmp</>子目录下 。
446
+ 临时文件名表示为 <filename>pgsql_tmp<replaceable>PPP</>.<replaceable>NNN</></filename>,
447
+ 这里<replaceable>PPP</>是其后端进程的PID, <replaceable>NNN</>用以区分后端进程的不同临时文件 。
449
448
</para>
450
449
451
450
</sect1>
0 commit comments