postgreSQL的pg_ctl常用命令
pg_ctl命令使用
目录
常用命令
pg_ctl是一个初始化、启动、停止、控制PostgreSQL服务器的命令行工具
- 1.初始化
pg_ctl init[db] [-D DATADIR] [-s] [-o OPTIONS]
初始化数据库,详见initdb命令
- 2.启动数据库
pg_ctl start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s] [-o OPTIONS] [-p PATH] [-c]
# 最简形式
pg_ctl start -D /pgdata/16/main
# 带日志重定向、等待端口就绪
pg_ctl start -D /pgdata/16/main \
-l /pgdata/16/main/pg_log/startup.log \
-w -t 60 # 最多等 60 s
- 3.停止数据库
pg_ctl stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
# 默认 smart(等所有会话退出)
pg_ctl stop -D /pgdata/16/main
# 常用 immediate(直接 kill,下次启动需 WAL 恢复)
pg_ctl stop -D /pgdata/16/main -m immediate
模式说明:
smart → 等所有连接断开(默认)
fast → 主动断开会话,立即 checkpoint
immediate → 不 checkpoint,需恢复
- 4.重启
pg_ctl restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s] [-o OPTIONS] [-c]
# 先 smart-stop 再 start
pg_ctl restart -D /pgdata/16/main -m smart -w
- 5.重新加载配置文件
pg_ctl reload [-D DATADIR] [-s]
pg_ctl reload -D /pgdata/16/main
- 6.查看实例状态(status)
pg_ctl status [-D DATADIR]
pg_ctl status -D /pgdata/16/main
- 7.通知数据库结束standby并开始读写
pg_ctl promote [-D DATADIR] [-W] [-t SECS] [-s]
pg_ctl promote -D /pgdata/16/main
- 8.向进程发送消息。在没有kill命令的windows上使用
pg_ctl kill SIGNALNAME PID
- 9.注册和注销服务
pg_ctl register | unregister
linux 下:
# 注册(需 root)
sudo pg_ctl register -D /pgdata/16/main \
-N postgresql-16 \
-S auto \
-w -t 60
# 注销
sudo pg_ctl unregister -N postgresql-16
注册后可用 systemctl start postgresql-16。
- 10.进入单用户模式
# 连接 postgres 数据库,仅本地、单会话
pg_ctl start -D /pgdata/16/main -o "--single -F" -l /dev/null
- 11.带环境变量启动
# 临时修改端口、共享内存
PGPORT=5433 \
PGSHAREDPreFS=1GB \
pg_ctl start -D /pgdata/16/main -o "-c shared_buffers=256MB -c port=5433"
命令速查表
| 目的 | 命令 |
|---|---|
| 启动 | pg_ctl start -D $PGDATA [-l logfile] [-w] |
| 停止 | pg_ctl stop -D $PGDATA [-m smart/fast/immediate] |
| 重载 | pg_ctl reload -D $PGDATA |
| 重启 | pg_ctl restart -D $PGDATA [-m smart] |
| 状态 | pg_ctl status -D $PGDATA |
| 单用户 | pg_ctl start -D $PGDATA -o "--single" |
| 注册服务 | pg_ctl register -D $PGDATA -N svcname |
参数说明
-D DATADIR 数据库所在目录
-W 不等待操作完成
-s 仅打印错误
-t SECS 等待操作(参阅选项-w)完成的最大秒数
-l FILENAME 追加服务器日志输出到filename
-m SHUTDOWN-MODE 关闭模式:smart、 fast或immediate
-- Smart:等待所有客户端断开连接以及任何在线备份结束。
-- Fast:(默认)所有活动事务都被回滚并且客户端被强制断开连接,然后服务器被关闭。
-- Immediate:将立刻中止所有服务器进程,而不是做一次干净的关闭。
SIGNALNAME:ABRT HUP INT KILL QUIT TERM USR1 USR2

浙公网安备 33010602011771号