作者:瀚高PG实验室 (Highgo PG Lab)- 天蝎座
pg_ctl 是一个实用工具,有以下功能:
① 初始化PostgreSQL 数据库实例
② 启动、终止或重启数据库服务
③ 查看PostgreSQL数据库服务的状态
④ 让数据库实例重新读取配置文件
⑤ 允许给一个指定的进程发送信号
⑥ 在windows平台下允许为数据库实例注册一个系统服务或取消这个系统服务。
① pg_ctl initdb [-s] [-D datadir] [-o options]
-s:只打印错误和警告信息,不打印提示性信息
-D datadir : 指定数据库实例的数据目录
-o options:为直接传递给initdb命令的参数,具体可见initdb命令的帮助
②
pg_ctl start
start 启动数据库实例
-w :等待启动完成
-t:等待启动完成的等待秒数,默认为60秒
-s:只打印错误和警告信息,不打印提示性信息
-D datadir:指定数据库实例的数据目录
-l :把服务器日志输出附加在“filename”文件上,如果改文件不存在则创建
-o options:为直接传递给postgres的选项,具体可见postgres命令
-p path:指定postgres可执行文件的位置。默认情况下 postgres可执行文件来自和pg_ctl 相同的目录,不必使用该选项,除非要进行一些不同寻常的操作,或者产生了postgres执行文件找不到的错误。
-c :提高服务器的软限制(ulimit -c),尝试允许数据库实例在有异常时产生一个coredump文件,以便于问题定位和故障分析。
pg_ctl stop
-W:不等待数据库停下来,命令就返回。
-m:指定停止的模式 [smart | fast | immediate ]
③ pg_ctl status [-D dataidr]
-D datadir:指定数据库实例的数据目录
④ pg_ctl reload [-s] [-D datadir]
-s:只打印错误和警告信息,不打印提示性信息
-D datadir:指定数据库实例的数据目录
⑤ pg_ctl kill [signal_name] [process_id]
Windows下没有kill命令。通过该命令,可以杀掉pg的某个进程。
⑥ pg_ctl register [-N servicename ] [-U username] [-P password] [-D datadir] [-w] [-t seconds] [-o options]
pg_ctl unregister [-N servicename]
-N servicename:要注册的系统服务的名字。这个名字将用于服务名和显示名。
-P password:用户启动服务的密码
-U :用于启动服务的用户名。
例如:
增加一个服务:
pg_ctl register -D “C:\postgresql\9.6\data”
删除一个服务
pg_ctl unregister -N postgresql-9.6