PostgreSQL pg_ctl 工具

pg_ctl 是 PostgreSQL数据库自带的实用工具,具有以下功能:

  1. 初始化PostgreSQL数据库实例
  2. 启动,停止,重启PostgreSQL数据库服务
  3. 查看PostgreSQL数据库服务的状态
  4. 让数据库重新读取配置文件
  5. 将备库提升为主库
  6. 给指定的进程发送信号
Usage:
  pg_ctl init[db] [-D DATADIR] [-s] [-o OPTIONS]
  pg_ctl start    [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s] [-o OPTIONS] [-p PATH] [-c]
  pg_ctl stop     [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]
  pg_ctl restart  [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s] [-o OPTIONS] [-c]
  pg_ctl reload   [-D DATADIR] [-s]
  pg_ctl status   [-D DATADIR]
  pg_ctl promote  [-D DATADIR] [-W] [-t SECS] [-s]
  pg_ctl kill     SIGNALNAME PID
1. 初始化PostgreSQL数据库实例

pg_ctl init[db] [-s] [-D datadir] [-o options]

实际调用initdb命令进行数据库实例的初始化。

示例:
pg_ctl init -s -D /data/pg

-s 只打印错误和告警信息,不打印提示性信息
-D datadir,指定数据库实例的数据目录
-o options,直接传递给initdb命令的参数

2. 启动PostgreSQL数据库

pg_ctl start [-w] [-t seconds] [-s] [-D datadir] [-l filename] [-o options] [-p path] [-c]

示例:
pg_ctl start -w -D /data/pg

start,启动数据库实例
-w,等待启动完成
-t,等待启动完成等待的秒数,默认60秒
-s,只打印错误和告警信息,不打印提示性信息
-D datadir,指定数据库实例的数据目录
-l,把服务器日志输出附加在filename文件上
-o options,指定传递给postgres程序的选项
-p path,指定postgres程序位置,默认与pg_ctl同一个目录
-c,提高服务器的软限制(ulimit -c),允许数据库实例异常时产生一个coredump文件,以便于问题的排查与分析

3. 停止PostgreSQL数据库

pg_ctl stop [-W] [-t seconds] [-s] [-D datadir] [-m s|f|i ]

示例:
pg_ctl stop -D /data/pg -m f

-W,不等待数据库停下来就返回
-m,指定停止的模式,可选值s(smart),f(fast),i(immediate)。

4. 重启PostgreSQL数据库

pg_ctl restart [-w] [-t seconds] [-s] [-D datadir] [-c] [-m s|f|i ] [-o options]

示例:
pg_ctl restart -D /data/pg

5. 重新读取配置文件

pg_ctl reload [-s] [-D datadir]

示例:
pg_ctl reload -D /data/pg

在配置文件中改变参数后,需要使用上述命令使参数生效。

6. 查看数据库实例状态

pg_ctl status [-D datadir]

7. 将备库提升为主库

pg_ctl promote  [-D DATADIR] [-W] [-t SECS] [-s]

示例:
pg_ctl promote -D /data/pg

8. 给进程发送信号

pg_ctl kill [signal_name] [process_id]

示例:
pg_ctl kill INT 3900

发表评论