{"kind": "storage", "major": "18", "item": {"slug": "fork-fsm", "name": "fsm fork", "name_zh": "", "category": "\u5173\u7cfb\u5206\u53c9", "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "aliases": [], "content_hash": "3ef0fa6d2ef35470c7d835e2d93b23a90965491c1767bf89bb9d082c545d4ec6", "versions": {"10": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=10", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "stable", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sources": [{"url": "/docs/10/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 10 English manual", "sha256": "093b3f235454c71a726c19d2a533af52677d400170ccbc8f4b8cab5cfb19946a"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/10/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "10", "build_id": 63, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "94af6cdae88f5334832106afdde2481a2ff18e6eb4fbc8aed64df3cb046e721d", "fragment_sha256": "8413a23ee3cfd7f5ed476ecfa4a0a548e1568988344dc64f5820a80df8de7327", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:62997ea80516ad012fbf6359de33f3b016b54c47e2df76e75606116b4baaf8e5", "translated_from_revision": null}, "body_sha256": "c28bde30121398470853d9c08825418db0e499aac9d3671641175b921dc2ec7c", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "10", "text_hash": "56b31696fb66839dcc606fd664b866529522536e6fde6ae0a6661b67fabdafcc", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/10/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "10", "build_id": 63, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "94af6cdae88f5334832106afdde2481a2ff18e6eb4fbc8aed64df3cb046e721d", "fragment_sha256": "8413a23ee3cfd7f5ed476ecfa4a0a548e1568988344dc64f5820a80df8de7327", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:62997ea80516ad012fbf6359de33f3b016b54c47e2df76e75606116b4baaf8e5", "translated_from_revision": null}, "body_sha256": "c28bde30121398470853d9c08825418db0e499aac9d3671641175b921dc2ec7c", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 67.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002</p><p>\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002</p><p><code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/10/storage.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a067.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002</p><p>\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002</p><p><a href=\"/zh/docs/10/storage.html#STORAGE-FILE-LAYOUT\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 67.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "10", "link_map": {"/zh/docs/10/storage.html#STORAGE-FILE-LAYOUT": "/docs/10/storage.html#STORAGE-FILE-LAYOUT", "/zh/docs/10/storage.html#PGDATA-CONTENTS-TABLE": "/docs/10/storage.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002</p><p>\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002</p><p><code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/10/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a067.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002</p><p>\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002</p><p><a href=\"/zh/docs/10/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "23afab8d0fb39a47189bd0c67d3e9e23cfa2c97cdcccf5f2924bfaec1da330b5", "content_hash": "56b31696fb66839dcc606fd664b866529522536e6fde6ae0a6661b67fabdafcc", "source_database": "center", "source_revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 67.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/10/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/10/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 67.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 67.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 67.5 ).", "/versions/10/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/10/facts/0/label": "Fork", "/versions/10/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "e612e77e09abaf4aca59437ef1d20ce106a407198e5a827573cb7c6926e53933", "canonical_center_text_hash": "56b31696fb66839dcc606fd664b866529522536e6fde6ae0a6661b67fabdafcc"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 67.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002</p><p>\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002</p><p><code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/10/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a067.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002</p><p>\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002</p><p><a href=\"/zh/docs/10/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "11": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=11", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "stable", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sources": [{"url": "/docs/11/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 11 English manual", "sha256": "cbed09542ca2b0c2412d9e0810e5283a7626385224a23e094412d8f62be81985"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/11/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "11", "build_id": 64, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "bab880b9c4b0458a1292568ff901f9251365930386e436d45fbe7a5fa10a0cf8", "fragment_sha256": "41323feb1c52e61209cdf2a7863eb868c3334c11ae4fc1f2aafc4239573a546c", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:ef5c7bc074acae9795db16e6b7482aea3b222bd4bcce0f76831332b97a21e8a1", "translated_from_revision": null}, "body_sha256": "14cdacf926095b5a1f6a3e85dbf31d3261f5003f5ff787f6156d03c58a5157d3", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "11", "text_hash": "4c9dc1adc95d71c0e82753a4ef6b2086f1848599e1a27fede66fb12f81cae877", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/11/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "11", "build_id": 64, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "bab880b9c4b0458a1292568ff901f9251365930386e436d45fbe7a5fa10a0cf8", "fragment_sha256": "41323feb1c52e61209cdf2a7863eb868c3334c11ae4fc1f2aafc4239573a546c", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:ef5c7bc074acae9795db16e6b7482aea3b222bd4bcce0f76831332b97a21e8a1", "translated_from_revision": null}, "body_sha256": "14cdacf926095b5a1f6a3e85dbf31d3261f5003f5ff787f6156d03c58a5157d3", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/11/storage.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/11/storage.html#STORAGE-FILE-LAYOUT\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "11", "link_map": {"/zh/docs/11/storage.html#STORAGE-FILE-LAYOUT": "/docs/11/storage.html#STORAGE-FILE-LAYOUT", "/zh/docs/11/storage.html#PGDATA-CONTENTS-TABLE": "/docs/11/storage.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/11/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/11/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "34844ade4c4529ce28ea6e69a8b636a812f536237180098571629499e039a5dc", "content_hash": "4c9dc1adc95d71c0e82753a4ef6b2086f1848599e1a27fede66fb12f81cae877", "source_database": "center", "source_revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/11/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/11/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 69.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 69.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 69.5 ).", "/versions/11/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/11/facts/0/label": "Fork", "/versions/11/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "f2b14c57c9aea75462dae9d10486fb41a171567cb5caba8dc4dac74645eaa6ca", "canonical_center_text_hash": "4c9dc1adc95d71c0e82753a4ef6b2086f1848599e1a27fede66fb12f81cae877"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/11/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/11/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "12": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=12", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "stable", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sources": [{"url": "/docs/12/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 12 English manual", "sha256": "cb2e82b933c3712adaf61cc5a26d266e9f007698df549f999db9962bb6f39823"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/12/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "12", "build_id": 65, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "34b63c2af8603bf1a123e05d5e1a2e513806ca27d457315a04809855c3cb457a", "fragment_sha256": "e38c729c2db8bcd3141f2c984c71866ed14ccd618b58a184a4a3153d1b5b7cb5", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:86d2ff781f93e1de17122ebc514d5e64fcb63fed15941f496d7e146c6dcc7a49", "translated_from_revision": null}, "body_sha256": "85490e70edb5316bb4ef6252e9e078b7054df7e90c7d4ed86be6a991f6452f58", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "12", "text_hash": "f2ca12636e03b4e76a2830be453c036569cb3c74300c7645f48474f0b094a279", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/12/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "12", "build_id": 65, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "34b63c2af8603bf1a123e05d5e1a2e513806ca27d457315a04809855c3cb457a", "fragment_sha256": "e38c729c2db8bcd3141f2c984c71866ed14ccd618b58a184a4a3153d1b5b7cb5", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:86d2ff781f93e1de17122ebc514d5e64fcb63fed15941f496d7e146c6dcc7a49", "translated_from_revision": null}, "body_sha256": "85490e70edb5316bb4ef6252e9e078b7054df7e90c7d4ed86be6a991f6452f58", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/12/storage.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/12/storage.html#STORAGE-FILE-LAYOUT\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "12", "link_map": {"/zh/docs/12/storage.html#STORAGE-FILE-LAYOUT": "/docs/12/storage.html#STORAGE-FILE-LAYOUT", "/zh/docs/12/storage.html#PGDATA-CONTENTS-TABLE": "/docs/12/storage.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/12/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/12/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "c2e881152495498b19b9476f385dd0d01ff01a682275225631634fd4476abd07", "content_hash": "f2ca12636e03b4e76a2830be453c036569cb3c74300c7645f48474f0b094a279", "source_database": "center", "source_revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/12/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/12/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 69.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 69.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 69.5 ).", "/versions/12/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/12/facts/0/label": "Fork", "/versions/12/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "05e50b634381a4bab7e83d3cce7343336f8ca7b956c08a3bbb0f62d3fdf9eb26", "canonical_center_text_hash": "f2ca12636e03b4e76a2830be453c036569cb3c74300c7645f48474f0b094a279"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/12/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/12/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "13": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=13", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "stable", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sources": [{"url": "/docs/13/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 13 English manual", "sha256": "2c839dc903912e2950982d087d63ebb1a03d2818c75443e237320784aa6443f8"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/13/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "13", "build_id": 66, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "efed129aff91f45e831c56ca2e3ffb09a4a8d573ef1140b791d8591907504598", "fragment_sha256": "36f8580507ed8a50ae07a7d827df5bad00f0510ead702e3ad12b756fad9e8447", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:a13a825c39f0268ef1cfe9137e283e38d0da73b2d7894f0733c7b26372a4f6a4", "translated_from_revision": null}, "body_sha256": "78e7cb723b92cf44c8b36960cf45326818e33d46193290ee7816453962009e2d", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "13", "text_hash": "c3ec22d31d6f23d43140c5bcf913ab513dd9584d71a177a6fbe8240372eb522e", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/13/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "13", "build_id": 66, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "efed129aff91f45e831c56ca2e3ffb09a4a8d573ef1140b791d8591907504598", "fragment_sha256": "36f8580507ed8a50ae07a7d827df5bad00f0510ead702e3ad12b756fad9e8447", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "snapshot:sha256:a13a825c39f0268ef1cfe9137e283e38d0da73b2d7894f0733c7b26372a4f6a4", "translated_from_revision": null}, "body_sha256": "78e7cb723b92cf44c8b36960cf45326818e33d46193290ee7816453962009e2d", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/13/storage.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/13/storage.html#STORAGE-FILE-LAYOUT\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "13", "link_map": {"/zh/docs/13/storage.html#STORAGE-FILE-LAYOUT": "/docs/13/storage.html#STORAGE-FILE-LAYOUT", "/zh/docs/13/storage.html#PGDATA-CONTENTS-TABLE": "/docs/13/storage.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/13/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/13/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "d10df4a77497558e7da82b10097fb49add423cd1ca4d3deec698b8a1ad524329", "content_hash": "c3ec22d31d6f23d43140c5bcf913ab513dd9584d71a177a6fbe8240372eb522e", "source_database": "center", "source_revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/13/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/13/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 69.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 69.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 69.5 ).", "/versions/13/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/13/facts/0/label": "Fork", "/versions/13/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "7652515c8e81a3255363817725a05ce0ceb50810838632bdc77e801c8244878c", "canonical_center_text_hash": "c3ec22d31d6f23d43140c5bcf913ab513dd9584d71a177a6fbe8240372eb522e"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 69.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/13/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a069.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/13/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "14": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=14", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sources": [{"url": "/docs/14/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 14 English manual", "sha256": "6321dbd90cb8a8dfdc90c0e1caeaf3d480705176bba0428510fd986fe681eae3"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/14/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "14", "build_id": 99, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "3dc0761a8e7141eb56d10a6f2a02ef28cf806c4a3d31fe0e22fd459d9d2bc9bb", "fragment_sha256": "8fa88adce13c16840a57633d5cef3e8698b75083cf224709546b8acf94330e07", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:87e6aa4fd6e1ec85c5f4a6de4f5647cfd9e5de734ca2c266d32b6d6192c662ef", "translated_from_revision": null}, "body_sha256": "9165b5e7f6912cd498bb109cb404c7596ca92acc9057828a1ecda637c94be167", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "14", "text_hash": "84e4c551dc98dccf3b5f174201f5d5a3a2453421768809a6976b315bbca0eb03", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/14/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "14", "build_id": 99, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "3dc0761a8e7141eb56d10a6f2a02ef28cf806c4a3d31fe0e22fd459d9d2bc9bb", "fragment_sha256": "8fa88adce13c16840a57633d5cef3e8698b75083cf224709546b8acf94330e07", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:87e6aa4fd6e1ec85c5f4a6de4f5647cfd9e5de734ca2c266d32b6d6192c662ef", "translated_from_revision": null}, "body_sha256": "9165b5e7f6912cd498bb109cb404c7596ca92acc9057828a1ecda637c94be167", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 70.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/14/storage.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a070.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/14/storage.html#STORAGE-FILE-LAYOUT\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 70.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "14", "link_map": {"/zh/docs/14/storage.html#STORAGE-FILE-LAYOUT": "/docs/14/storage.html#STORAGE-FILE-LAYOUT", "/zh/docs/14/storage.html#PGDATA-CONTENTS-TABLE": "/docs/14/storage.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/14/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a070.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/14/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "6bae3f5ab9b049688b1f660fdc1d3182cd717f1234c335ebcfdcbc7a2453dd7e", "content_hash": "84e4c551dc98dccf3b5f174201f5d5a3a2453421768809a6976b315bbca0eb03", "source_database": "center", "source_revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 70.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/14/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/14/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 70.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 70.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 70.5 ).", "/versions/14/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/14/facts/0/label": "Fork", "/versions/14/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "adbc726ba3ac6ab3609cd171079a47416dce6400424348a36265de62edf0c854", "canonical_center_text_hash": "84e4c551dc98dccf3b5f174201f5d5a3a2453421768809a6976b315bbca0eb03"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 70.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/14/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a070.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/14/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "15": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=15", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sources": [{"url": "/docs/15/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 15 English manual", "sha256": "01868f8e03e8749d2c1b113ab2988c459ac44259ce7416677e981e41e33015ea"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/15/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "15", "build_id": 101, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "56436f3504bf627a4cde8c272b488c76f635fa209816b310eb3db961f737bf83", "fragment_sha256": "787461c4cdd1a6137baff0a8819bad051bf27396fd93265fe65e8be31f568588", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:6bce1a2df9170cb1146a1411c5547190856638221a6539e618ee1016c9f493ad", "translated_from_revision": null}, "body_sha256": "737b224d07e00c7fe16d0c255bfdd1bf89cab70b251db434e648835ade7ecabf", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "15", "text_hash": "55e285fdced31c6e118333ac13a7cd9a18fe37afe38354a04c78213bff8afc18", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/15/storage.html#STORAGE-FILE-LAYOUT", "anchor": "STORAGE-FILE-LAYOUT", "locale": "zh-Hans", "version": "15", "build_id": 101, "page_key": "storage.html", "extraction": "concept-introduction", "source_hash": "56436f3504bf627a4cde8c272b488c76f635fa209816b310eb3db961f737bf83", "fragment_sha256": "787461c4cdd1a6137baff0a8819bad051bf27396fd93265fe65e8be31f568588", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:6bce1a2df9170cb1146a1411c5547190856638221a6539e618ee1016c9f493ad", "translated_from_revision": null}, "body_sha256": "737b224d07e00c7fe16d0c255bfdd1bf89cab70b251db434e648835ade7ecabf", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/15/storage.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a073.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/15/storage.html#STORAGE-FILE-LAYOUT\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "15", "link_map": {"/zh/docs/15/storage.html#STORAGE-FILE-LAYOUT": "/docs/15/storage.html#STORAGE-FILE-LAYOUT", "/zh/docs/15/storage.html#PGDATA-CONTENTS-TABLE": "/docs/15/storage.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/15/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a073.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/15/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "5135df8011cb8713108bdd05181de295ff5ec0a1762fec08439e1af5b855e5bd", "content_hash": "55e285fdced31c6e118333ac13a7cd9a18fe37afe38354a04c78213bff8afc18", "source_database": "center", "source_revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/15/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/15/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 73.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 73.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 73.5 ).", "/versions/15/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/15/facts/0/label": "Fork", "/versions/15/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "713b9c66e44eb793cf732feb79dc0b9d118694314869ddb206447927fa1a93b6", "canonical_center_text_hash": "55e285fdced31c6e118333ac13a7cd9a18fe37afe38354a04c78213bff8afc18"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/15/storage.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a073.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/15/storage.html#STORAGE-FILE-LAYOUT\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "16": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=16", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sources": [{"url": "/docs/16/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 16 English manual", "sha256": "f03daad7b39b5df902b4bc6e6f856e65af368a8507ffbf02199804aa4b0d0bd5"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/16/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "16", "build_id": 103, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "3c7e10a573ed356405b27aa7cf16673df9178d044d2e80985d79b139ccc5c113", "fragment_sha256": "cbddc0dff20de9c7e4b9fbd292b1cf71d8bfa69f9f68c0daa3a0ec5ed01c3d24", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:80579a071736780f9c4022bb5148e1fb1256f1a33591306af67816e9e9bf3a9b", "translated_from_revision": null}, "body_sha256": "f2a72ddea703ede2bd651814fda5f0b89883284ca0b4ec0c386887477d05e866", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "16", "text_hash": "1089089843f04fcdd4bb6caeeeffa6dca95b521c93f583717da72319fb87dbcb", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/16/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "16", "build_id": 103, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "3c7e10a573ed356405b27aa7cf16673df9178d044d2e80985d79b139ccc5c113", "fragment_sha256": "cbddc0dff20de9c7e4b9fbd292b1cf71d8bfa69f9f68c0daa3a0ec5ed01c3d24", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:80579a071736780f9c4022bb5148e1fb1256f1a33591306af67816e9e9bf3a9b", "translated_from_revision": null}, "body_sha256": "f2a72ddea703ede2bd651814fda5f0b89883284ca0b4ec0c386887477d05e866", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/16/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a073.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/16/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "16", "link_map": {"/zh/docs/16/storage-file-layout.html": "/docs/16/storage-file-layout.html", "/zh/docs/16/storage-file-layout.html#PGDATA-CONTENTS-TABLE": "/docs/16/storage-file-layout.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/16/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a073.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/16/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "7b2a07407e0cabee4fb92d03e7af9505375bdd5fb1ca9e66768cb276a29df209", "content_hash": "1089089843f04fcdd4bb6caeeeffa6dca95b521c93f583717da72319fb87dbcb", "source_database": "center", "source_revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/16/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/16/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 73.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 73.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 73.5 ).", "/versions/16/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/16/facts/0/label": "Fork", "/versions/16/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "bfea562a67f9c4aa2d89a4b3a9f6a9b5f7c624de017597a7a8f0c864868c5b44", "canonical_center_text_hash": "1089089843f04fcdd4bb6caeeeffa6dca95b521c93f583717da72319fb87dbcb"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 73.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/16/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a073.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/16/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "17": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=17", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sources": [{"url": "/docs/17/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 17 English manual", "sha256": "f3de9587ca7d02f068a4307639ba9e24f7e90a722f8e71b496428de6aaba8652"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/17/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "17", "build_id": 105, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "b604b572b86df5108ce198470c4f4890ba9dfac7574692e171ee471a106fcce0", "fragment_sha256": "f478df8c8ce97b75c7bcd9f10806b0b847f00fc353ae813b575fde736ffce24e", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:7340767258d21c21b36f373f1fff6bab2be18e0daca13a865129db6105c09efd", "translated_from_revision": null}, "body_sha256": "fe262d0454bb759a63ab1efaf2ae37a710b25a11d1b36f54e2c2ba4d9bd5ba60", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "17", "text_hash": "0dbda49acaefb54e607136871c7106a5ea781ed5c4a189a2481bd87b1ce3812c", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/17/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "17", "build_id": 105, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "b604b572b86df5108ce198470c4f4890ba9dfac7574692e171ee471a106fcce0", "fragment_sha256": "f478df8c8ce97b75c7bcd9f10806b0b847f00fc353ae813b575fde736ffce24e", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:7340767258d21c21b36f373f1fff6bab2be18e0daca13a865129db6105c09efd", "translated_from_revision": null}, "body_sha256": "fe262d0454bb759a63ab1efaf2ae37a710b25a11d1b36f54e2c2ba4d9bd5ba60", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 65.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/17/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a065.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/17/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 65.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "17", "link_map": {"/zh/docs/17/storage-file-layout.html": "/docs/17/storage-file-layout.html", "/zh/docs/17/storage-file-layout.html#PGDATA-CONTENTS-TABLE": "/docs/17/storage-file-layout.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/17/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a065.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/17/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "821b086565d1f8e0556c3a245dc39a5988742e11159d19ef18b0e0ca857fe425", "content_hash": "0dbda49acaefb54e607136871c7106a5ea781ed5c4a189a2481bd87b1ce3812c", "source_database": "center", "source_revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 65.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/17/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [{"url": "/docs/17/storage-file-layout.html", "method": "same-major semantic node", "sha256": "560012604ef3e72433d00f8d7c10e196fc8d62ce42f886a6d72b9471e74a6257", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/17/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 65.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 65.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 65.5 ).", "/versions/17/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/17/facts/0/label": "Fork", "/versions/17/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "c9d98f398024fc45a268ef251e8755bc976cddd1dc2519b4a0c84bde97c6dd65", "canonical_center_text_hash": "0dbda49acaefb54e607136871c7106a5ea781ed5c4a189a2481bd87b1ce3812c"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 65.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/17/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a065.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/17/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "18": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=18", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "/docs/18/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 18 English manual", "sha256": "8cdf46b5af669f41f0a77c2541863d63454ef8fbb44d22a75e576cf1a7efc9c9"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/18/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "b919cbcb8aedb49e32e5185e2c7753b075945bb7c0e00c59b81974d853143a0a", "fragment_sha256": "257fb050d6193b915e73cee0d717b72f3e9e669fd98d6e4cebef2941b6a6378b", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "37e906cde9e7c7a0cbc920425f26ab4778c8b1da68d7a555a2f3a9c3a750ae4d", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "18", "text_hash": "2939916d2cc15e3017cb991f98ef5803d197ef35e8f2f1fb632c90ce52906367", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/18/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "b919cbcb8aedb49e32e5185e2c7753b075945bb7c0e00c59b81974d853143a0a", "fragment_sha256": "257fb050d6193b915e73cee0d717b72f3e9e669fd98d6e4cebef2941b6a6378b", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "37e906cde9e7c7a0cbc920425f26ab4778c8b1da68d7a555a2f3a9c3a750ae4d", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/18/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "18", "link_map": {"/zh/docs/18/storage-file-layout.html": "/docs/18/storage-file-layout.html", "/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE": "/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/18/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "1670a01799d368287a5fce05d235c6a226d0bb28728bda34a4c96cfffae48455", "content_hash": "2939916d2cc15e3017cb991f98ef5803d197ef35e8f2f1fb632c90ce52906367", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/18/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [{"url": "/docs/18/storage-file-layout.html", "method": "same-major semantic node", "sha256": "55056edf7352b4e414c1366406a307a72af33aeda7854ef3a8cc1fa5c0db23ad", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/18/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/18/facts/0/label": "Fork", "/versions/18/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "01e8ff33c35e95928cff7b90253443079a43249ecb57f5fa8fc845167ad3c2e2", "canonical_center_text_hash": "2939916d2cc15e3017cb991f98ef5803d197ef35e8f2f1fb632c90ce52906367"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/18/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "center_zh_rendered": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/docs/18/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "19": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=19", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19rc1/postgresql-19rc1.tar.bz2", "label": "19rc1", "major": "19", "channel": "preview", "revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "sources": [{"url": "/docs/19/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 19 English manual", "sha256": "628996446c17dc27f581a5f3a9686a23124a9e9054ebd91e05102268155ff139"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/19/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "19", "build_id": 109, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "f6e631b917f227057ee82b298b6f3c8e4b0d41412bf3f05307bf17353b8b3d2d", "fragment_sha256": "55664dc7fcb3a6d96522818960b039803e0152ead6fe00062bee6180b4d68f92", "source_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:65fda1f1b62a89992b84014c9157e61b67dbe8190e93945826efec668fad038c", "translated_from_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "body_sha256": "8424e5c6ee0f8692c46341b991dc144f3eb1f5267169572b7782fbc6672a9e06", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "19", "text_hash": "77329df82efc71f8833336b81d7e7995c902d6daf7d692f5a54cf557c9448025", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/19/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "19", "build_id": 109, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "f6e631b917f227057ee82b298b6f3c8e4b0d41412bf3f05307bf17353b8b3d2d", "fragment_sha256": "55664dc7fcb3a6d96522818960b039803e0152ead6fe00062bee6180b4d68f92", "source_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:65fda1f1b62a89992b84014c9157e61b67dbe8190e93945826efec668fad038c", "translated_from_revision": "sha256:af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "body_sha256": "8424e5c6ee0f8692c46341b991dc144f3eb1f5267169572b7782fbc6672a9e06", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/19/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/19/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "19", "link_map": {"/zh/docs/19/storage-file-layout.html": "/docs/19/storage-file-layout.html", "/zh/docs/19/storage-file-layout.html#PGDATA-CONTENTS-TABLE": "/docs/19/storage-file-layout.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/19/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/19/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "2a32583430177eceb591607589663dbf4fa7dcef5395656634046b271c16f2dc", "content_hash": "77329df82efc71f8833336b81d7e7995c902d6daf7d692f5a54cf557c9448025", "source_database": "center", "source_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/19/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [{"url": "/docs/19/storage-file-layout.html", "method": "same-major semantic node", "sha256": "9a13b1f05755a7031d551a429c6d21bff35d965f098909408a39259ca751f156", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/19/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/19/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/19/facts/0/label": "Fork", "/versions/19/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "4b9160633de22137d72109b09dbbe62ac2ccc9a1f069847538854120ee2f6d62", "canonical_center_text_hash": "77329df82efc71f8833336b81d7e7995c902d6daf7d692f5a54cf557c9448025"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/19/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/19/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "source_revalidation": {"kind": "static-same-version-source-and-manual-replay", "audit": "wiki-audit-20261023", "runtime_rerun": false, "compared_fields": "entity membership and source-derived facts; presentation markup normalized", "source_revision": "af105fc8e960fc836a09fc2cd7f582b49fd17675d9d36631abe3a565bfd7d701", "previous_source_revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}}, "20": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=20", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "sources": [{"url": "/docs/devel/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 20 English manual", "sha256": "385ac3f959e9f95fdfb8048a6ca4058330dbe7b5b87c109015b1e800c40615ad"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/devel/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "20", "build_id": 111, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "7b2d4aa0007100fe3f3cd28777f7bb94cbf0f1fe1c209a6ce2a1991aed1c8055", "fragment_sha256": "75cccea55320b48d9b18a16895bc2eab9984e7b238f7f0af81cbc71e86b8f4f9", "source_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:98c980963b401d40bd50df72b909e7523e3148b8fdb48edd897de2efb67e5235", "translated_from_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "body_sha256": "680b153d2df9d78474a68fc5021cdccabf22480bdf08e8e5308406f760b59699", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "20", "text_hash": "83b7bb3ae846b5612056d0f79f8504fb1030d8d05c31da40b170ad3fa345c938", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/devel/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "20", "build_id": 111, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "7b2d4aa0007100fe3f3cd28777f7bb94cbf0f1fe1c209a6ce2a1991aed1c8055", "fragment_sha256": "75cccea55320b48d9b18a16895bc2eab9984e7b238f7f0af81cbc71e86b8f4f9", "source_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:98c980963b401d40bd50df72b909e7523e3148b8fdb48edd897de2efb67e5235", "translated_from_revision": "sha256:49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "body_sha256": "680b153d2df9d78474a68fc5021cdccabf22480bdf08e8e5308406f760b59699", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/devel/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/devel/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "20", "link_map": {"/zh/docs/devel/storage-file-layout.html": "/docs/devel/storage-file-layout.html", "/zh/docs/devel/storage-file-layout.html#PGDATA-CONTENTS-TABLE": "/docs/devel/storage-file-layout.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/devel/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/devel/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "e1f5272b7a0c4e2bffa92474b04942d42aaed5ebb335184573816e6745d7133f", "content_hash": "83b7bb3ae846b5612056d0f79f8504fb1030d8d05c31da40b170ad3fa345c938", "source_database": "center", "source_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/devel/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [{"url": "/docs/devel/storage-file-layout.html", "method": "same-major semantic node", "sha256": "b9b6648fd2b429a3ecdd8415a850a0a45442ec89c62b4df06cbd7805b21a9363", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/summary": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/category": "Relation forks", "/versions/20/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/20/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/20/facts/0/label": "Fork", "/versions/20/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "32ccc93d2a2549116bbf715a88c52b1b54c4e2820626442dfb4950c4fb41812d", "canonical_center_text_hash": "83b7bb3ae846b5612056d0f79f8504fb1030d8d05c31da40b170ad3fa345c938"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/devel/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/devel/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "source_revalidation": {"kind": "static-same-version-source-and-manual-replay", "audit": "wiki-audit-20261023", "runtime_rerun": false, "compared_fields": "entity membership and source-derived facts; presentation markup normalized", "source_revision": "49c73aa4c9cacef8ca979276a28ac416c08e9e54c9baee4ae5fd116a35fa13ac", "previous_source_revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}}}}, "snapshot": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=18", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "/docs/18/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 18 English manual", "sha256": "8cdf46b5af669f41f0a77c2541863d63454ef8fbb44d22a75e576cf1a7efc9c9"}], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/18/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "b919cbcb8aedb49e32e5185e2c7753b075945bb7c0e00c59b81974d853143a0a", "fragment_sha256": "257fb050d6193b915e73cee0d717b72f3e9e669fd98d6e4cebef2941b6a6378b", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "37e906cde9e7c7a0cbc920425f26ab4778c8b1da68d7a555a2f3a9c3a750ae4d", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "facts_zh": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "sections": [], "center_zh": {"title": "fsm fork", "locale": "zh-Hans", "source": {"key": "fork-fsm", "locale": "zh-Hans", "version": "18", "text_hash": "2939916d2cc15e3017cb991f98ef5803d197ef35e8f2f1fb632c90ce52906367", "collection": "storage", "dataset_hash": "7c31b524dfe136022d39a6ae8dcfac6b3bbd5f8fdaf422536599981252aff0c9", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "payload": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "fsm"}], "tables": [], "zh_from": {"kind": "same-version-chinese-manual-with-source-derived-identity", "manual": {"url": "/zh/docs/18/storage-file-layout.html", "anchor": "", "locale": "zh-Hans", "version": "18", "build_id": 107, "page_key": "storage-file-layout.html", "extraction": "concept-introduction", "source_hash": "b919cbcb8aedb49e32e5185e2c7753b075945bb7c0e00c59b81974d853143a0a", "fragment_sha256": "257fb050d6193b915e73cee0d717b72f3e9e669fd98d6e4cebef2941b6a6378b", "source_revision": "unknown:rendered-translation-baseline", "translation_revision": "git:b1b500221dbe5437cfca004d6b04d3f6e422765d;html-sha256:08e987a66af27b98444a8057c256314eafa13611a3fb9e888214fc436824244b", "translated_from_revision": null}, "body_sha256": "37e906cde9e7c7a0cbc920425f26ab4778c8b1da68d7a555a2f3a9c3a750ae4d", "runtime_rerun": false, "authored_translation": "source-derived-identity", "source_facts_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sections": [], "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code class=\"varname\">PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code class=\"varname\">PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code class=\"filename\">/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code class=\"varname\">PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a class=\"xref\" href=\"/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code class=\"filename\">postgresql.conf</code>\u3001<code class=\"filename\">pg_hba.conf</code> \u548c\n<code class=\"filename\">pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code class=\"varname\">PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code class=\"varname\">PGDATA</code><code class=\"filename\">/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code class=\"structname\">pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/18/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "summary": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "version": "18", "link_map": {"/zh/docs/18/storage-file-layout.html": "/docs/18/storage-file-layout.html", "/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE": "/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE"}, "body_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/18/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "body_sha256": "1670a01799d368287a5fce05d235c6a226d0bb28728bda34a4c96cfffae48455", "content_hash": "2939916d2cc15e3017cb991f98ef5803d197ef35e8f2f1fb632c90ce52906367", "source_database": "center", "source_revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "signature": "", "tables_zh": [], "description": ["\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002"], "manual_html": "", "manual_path": "/docs/18/storage-file-layout.html", "sections_zh": [], "localization": {"status": "complete", "sources": [{"url": "/docs/18/storage-file-layout.html", "method": "same-major semantic node", "sha256": "55056edf7352b4e414c1366406a307a72af33aeda7854ef3a8cc1fa5c0db23ad", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/18/description/1": "When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments . The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc. This arrangement avoids problems on platforms that have file size limitations. (Actually, 1 GB is just the default segment size. The segment size can be adjusted using the configuration option --with-segsize when building PostgreSQL .) In principle, free space map and visibility map forks could require multiple segments as well, though this is unlikely to happen in practice.", "/versions/18/facts/0/label": "Fork", "/versions/18/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "01e8ff33c35e95928cff7b90253443079a43249ecb57f5fa8fc845167ad3c2e2", "canonical_center_text_hash": "2939916d2cc15e3017cb991f98ef5803d197ef35e8f2f1fb632c90ce52906367"}, "description_zh": "\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002 \u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a PGDATA \uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002 PGDATA \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f /var/lib/pgsql/data \u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002 PGDATA \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982 \u8868 66.1 \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6 postgresql.conf \u3001 pg_hba.conf \u548c pg_ident.conf \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 PGDATA \u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002 \u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c PGDATA /base \u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 pg_database \u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002", "comparison_data": {"fork": "fsm"}, "comparison_hash": "388784570fa33c635a62ccfb3f3a2799ec2cfd40ee9a117e63efc9329afbf083", "manual_language": "zh", "description_zh_html": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/zh/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\" rel=\"nofollow\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/zh/docs/18/storage-file-layout.html\" rel=\"nofollow\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>", "center_zh_rendered": "<p>\u5b58\u50a8\u7ed3\u6784 fork-fsm\u3002</p><h3>\u540c\u7248\u672c\u4e2d\u6587\u624b\u518c\u8282\u9009</h3><p>\n\u672c\u8282\u4ece\u6587\u4ef6\u548c\u76ee\u5f55\u7684\u5c42\u6b21\u63cf\u8ff0\u5b58\u50a8\u683c\u5f0f\u3002\n</p><p>\n\u4f20\u7edf\u4e0a\uff0c\u6570\u636e\u5e93\u96c6\u7c07\u6240\u4f7f\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6570\u636e\u6587\u4ef6\u90fd\u5b58\u653e\u5728\u96c6\u7c07\u7684\u6570\u636e\u76ee\u5f55\u4e2d\uff0c\u8fd9\u4e2a\u76ee\u5f55\u901a\u5e38\u79f0\u4e3a <code>PGDATA</code>\uff08\u540d\u5b57\u6765\u81ea\u53ef\u7528\u4e8e\u5b9a\u4e49\u5b83\u7684\u73af\u5883\u53d8\u91cf\uff09\u3002<code>PGDATA</code> \u7684\u4e00\u4e2a\u5e38\u89c1\u4f4d\u7f6e\u662f\n<code>/var/lib/pgsql/data</code>\u3002\u540c\u4e00\u53f0\u673a\u5668\u4e0a\u53ef\u4ee5\u5b58\u5728\u591a\u4e2a\u7531\u4e0d\u540c\u670d\u52a1\u5668\u5b9e\u4f8b\u7ba1\u7406\u7684\u96c6\u7c07\u3002\n</p><p>\n<code>PGDATA</code> \u76ee\u5f55\u5305\u542b\u82e5\u5e72\u5b50\u76ee\u5f55\u548c\u63a7\u5236\u6587\u4ef6\uff0c\u5982<a href=\"/docs/18/storage-file-layout.html#PGDATA-CONTENTS-TABLE\">\u8868\u00a066.1</a> \u6240\u793a\u3002\u9664\u8fd9\u4e9b\u5fc5\u9700\u9879\u4e4b\u5916\uff0c\u96c6\u7c07\u914d\u7f6e\u6587\u4ef6\n<code>postgresql.conf</code>\u3001<code>pg_hba.conf</code> \u548c\n<code>pg_ident.conf</code> \u4f20\u7edf\u4e0a\u4e5f\u5b58\u653e\u5728 <code>PGDATA</code>\n\u4e2d\uff0c\u4e0d\u8fc7\u4e5f\u53ef\u4ee5\u628a\u5b83\u4eec\u653e\u5728\u5176\u4ed6\u5730\u65b9\u3002\n</p><p>\n\u5bf9\u4e8e\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u5e93\uff0c<code>PGDATA</code><code>/base</code>\n\u4e2d\u90fd\u6709\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5176\u540d\u79f0\u662f\u8be5\u6570\u636e\u5e93\u5728 <code>pg_database</code>\n\u4e2d\u7684 OID\u3002\u8fd9\u4e2a\u5b50\u76ee\u5f55\u662f\u8be5\u6570\u636e\u5e93\u6587\u4ef6\u7684\u9ed8\u8ba4\u4f4d\u7f6e\uff1b\u7279\u522b\u662f\uff0c\u5b83\u7684\u7cfb\u7edf\u76ee\u5f55\u5c31\u5b58\u653e\u5728\u8fd9\u91cc\u3002\n</p><p><a href=\"/docs/18/storage-file-layout.html\">\u67e5\u770b\u5b8c\u6574\u4e2d\u6587\u624b\u518c\u4e0e\u4e0a\u4e0b\u6587</a>\u3002</p>"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}