服务器管理技巧
- 使用
pg_ctl
,确保服务器启动/重启正确 -
场景:使用
pg_ctl
启动/重启 PostgreSQL 时,输出显示“ ”,但没有指示服务器是否实际启动,这会导致以下情况elephant$ pg_ctl -D /path/to/data/ -l /tmp/pg.log start server starting $ psql -d postgres psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
解决方案:使用
pg_ctl
的-w
命令行标志,这使得pg_ctl
等待启动和关闭完成(在 PostgreSQL 10 之前,默认情况下仅等待关闭完成)。$ pg_ctl -w -D /path/to/data/ -l /tmp/pg.log start waiting for server to start........ stopped waiting pg_ctl: could not start server Examine the log output.
- 在数据目录之外使用
postgresql.conf
文件 -
场景:您需要将
postgresql.conf
保存在不同的位置,例如,为了使服务器管理更容易。解决方案:在服务器启动时,将“
-c config_file=/path/to/postgresql.conf
”传递给 PostgreSQL 服务器。$ pg_ctl -D /path/to/data-directory -o "-c config_file=/path/to/postgresql.conf" -w start waiting for server to start.... done server started