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选项 (commit 2e83db3a)
- 添加了
- PostgreSQL 10
- PostgreSQL 9.5
- PostgreSQL 9.4
- 如果指定的数据目录不可访问,则返回退出代码
4(commit 11d205e2)
- 如果指定的数据目录不可访问,则返回退出代码
- PostgreSQL 9.1
- 添加了
promote选项 (commit 4695da5a)
- 添加了
- PostgreSQL 9.0
- PostgreSQL 8.4
restart选项保留命令行参数 (commit 067f1e5f)
- PostgreSQL 8.3
- PostgreSQL 8.0
- PostgreSQL 7.2
- 添加了
reload选项以发送SIGHUP(commit 196700c3)
- 添加了
- PostgreSQL 7.0
- 已添加 (commit 5b912b08)
参考资料
- PostgreSQL 文档: pg_ctl
