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