PostgreSQL 10 为 config_file 和 data_directory 使用不同的目录
PostgreSQL 10 Use different directories for config_file and data_directory
我想使用 /some/dir/postgresql.conf 启动 postmaster 并获取数据 /in/another/directory.
我试过:
在override.conf
中设置"Environment=PGOPTS='--config_file="/some/dir/postgresql.conf"
在postgresql.service
中设置"Environment=PGOPTS='--config_file="/some/dir/postgresql.conf"
将 postgresql.service 中的 "ExecStart" 更改为以 -o "-c config_file='/some/dir/postgresql.conf'" 开头(已过时)
设置 -D /some/dir 有效,它使用来自正确路径的 postgresql.conf,但它不遵守 data_directory 并且仍然使用 -D 中指定的目录。
postgres=# SELECT name, setting FROM pg_settings WHERE setting LIKE '/%';
name | setting
-------------------------+------------------------------------
config_file | /some/dir/postgresql.conf
data_directory | /some/dir
我无法以显示 config_file 和 data_directory 的不同目录的任何方式启动 postmaster。
在一个目录中配置启动 postmaster 并使其读取 data_directory 以查找 DB 的位置的正确方法是什么?
谢谢!
-D
选项(与直觉相反)不是 数据目录,而是包含 postgresql.conf
的目录。正如 the documentation 所说:
-D <em>datadir</em>
Specifies the file system location of the database configuration files.
然后通过设置data_directory
参数在postgresql.conf
中指定数据目录。
我想使用 /some/dir/postgresql.conf 启动 postmaster 并获取数据 /in/another/directory.
我试过:
在override.conf
中设置"Environment=PGOPTS='--config_file="/some/dir/postgresql.conf"
在postgresql.service
中设置"Environment=PGOPTS='--config_file="/some/dir/postgresql.conf"
将 postgresql.service 中的 "ExecStart" 更改为以 -o "-c config_file='/some/dir/postgresql.conf'" 开头(已过时)
设置 -D /some/dir 有效,它使用来自正确路径的 postgresql.conf,但它不遵守 data_directory 并且仍然使用 -D 中指定的目录。
postgres=# SELECT name, setting FROM pg_settings WHERE setting LIKE '/%';
name | setting
-------------------------+------------------------------------
config_file | /some/dir/postgresql.conf
data_directory | /some/dir
我无法以显示 config_file 和 data_directory 的不同目录的任何方式启动 postmaster。
在一个目录中配置启动 postmaster 并使其读取 data_directory 以查找 DB 的位置的正确方法是什么?
谢谢!
-D
选项(与直觉相反)不是 数据目录,而是包含 postgresql.conf
的目录。正如 the documentation 所说:
-D <em>datadir</em>
Specifies the file system location of the database configuration files.
然后通过设置data_directory
参数在postgresql.conf
中指定数据目录。