PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

19.2. 文件路径设置 #

除前面提及的 postgresql.conf 主配置文件外,PostgreSQL 还使用另外两个手动编辑的配置文件来控制客户端身份认证(其具体用法在 Chapter 20 中讨论)。默认情况下,所有这三个配置文件均保存在数据库集群的数据目录中。本节描述的参数允许将这些配置文件放置在其他物理位置(这样做能够简化系统运维管理,特别是将配置文件独立分开存放时,往往更容易确保它们得到妥善的日常备份)。

data_directory (string) #

指定数据库集群用于持久化存储数据表的物理主数据目录。该参数只能在服务器启动时设置。

config_file (string) #

指定数据库主配置文件(通常名为 postgresql.conf)的物理路径。该参数只能在 postgres 命令行中设置。

hba_file (string) #

指定用于客户端基于主机身份认证的配置文件(通常名为 pg_hba.conf)的物理路径。该参数只能在服务器启动时设置。

ident_file (string) #

指定用于客户端用户名映射的配置文件(通常名为 pg_ident.conf)的物理路径。该参数只能在服务器启动时设置。另请参阅 Section 20.2。

external_pid_file (string) #

指定服务器应创建的供管理运维程序使用的附加进程 ID(PID)文件的文件名。该参数只能在服务器启动时设置。

在默认安装部署中,上述参数均未显式设置。相反,数据目录由命令行选项 -D 或环境变量 PGDATA 指定,而各配置文件均默认位于该数据目录内部。

如果您希望将配置文件保留在数据目录之外的其他位置,则 postgres 的 -D 命令行选项或环境变量 PGDATA 必须指向包含配置文件的目录,并且必须在 postgresql.conf 中(或在命令行上)显式设置 data_directory 参数以指明数据目录实际所在的物理路径。请注意,对于数据目录的位置,data_directory 会覆盖 -D 和 PGDATA,但不会覆盖配置文件的位置。

如果需要,可以使用参数 config_file、hba_file 和/或 ident_file 分别单独指定配置文件的文件名及路径。config_file 只能在 postgres 命令行中指定,但其他两个参数可以在主配置文件中设置。如果这三个参数以及 data_directory 都已显式指定,则无需再指定 -D 或 PGDATA。

在设置上述任何参数时,相对路径都将被解释为相对于启动 postgres 进程时所在的工作目录。