pg_ctl
是一个用于启动、停止和重启 PostgreSQL 服务器的服务器实用程序;它还可以用于执行initdb
、重新加载服务器配置、将备用服务器提升为主服务器以及显示服务器状态。在 Windows 系统上,pg_ctl
还可以用于注册/注销 PostgreSQL 作为服务。
pg_ctl
添加于PostgreSQL 7.0。
用法
关闭模式
关闭 PostgreSQL 实例的基本命令是
pg_ctl -D /path/to/data/directory stop [ -m mode ]
请注意,pgctl stop
以三种模式之一关闭正在运行的 PostgreSQL 服务器 - fast
、smart
和 immediate
,可以通过 -m
选项可选地指定这些模式。
fast
回滚活动事务,强制断开客户端连接并停止任何在线备份;这是从PostgreSQL 9.5开始的默认模式,应该执行得很快。smart
等待所有活动客户端断开连接以及所有在线备份完成之后再关闭;因此,根据系统活动情况,最终关闭可能需要一些时间。这是直到PostgreSQL 9.4之前的默认模式。immediate
立即中止所有进程,实际上是服务器崩溃;PostgreSQL 在下次启动时将最初以崩溃恢复模式运行。使用此关闭模式存在数据丢失的风险,仅应在紧急情况下使用。
更改历史记录
- PostgreSQL 12
- PostgreSQL 11
- 添加了
kill
选项 (提交 2e83db3a)
- 添加了
- PostgreSQL 10
- PostgreSQL 9.5
- PostgreSQL 9.4
- 如果指定的数据目录不可访问,现在返回退出代码
4
(提交 11d205e2)
- 如果指定的数据目录不可访问,现在返回退出代码
- PostgreSQL 9.1
- 添加了
promote
选项 (提交 4695da5a)
- 添加了
- PostgreSQL 9.0
- PostgreSQL 8.4
restart
选项保留命令行参数 (提交 067f1e5f)
- PostgreSQL 8.3
- PostgreSQL 8.0
- PostgreSQL 7.2
- 添加了
reload
选项以发送SIGHUP
(提交 196700c3)
- 添加了
- PostgreSQL 7.0
- 添加 (提交 5b912b08)
参考文献
- PostgreSQL 文档: pg_ctl