服务器管理技巧
- 使用
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
保存在不同的位置,例如为了简化服务器管理。解决方案: 在服务器启动时向 PostgreSQL 服务器传递 "
-c config_file=/path/to/postgresql.conf
"。$ 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