服务启动和停止的方法分别有两种
- 直接运行postgres进程启动----->直接向运行的postgres主进程发送signal信号停止数据库。
- 使用pg_ctl命令启动和停止数据库。
直接运行postgres进程启动的命令
postgres -D /var/lib/pgsql/12/data &
使用pg_ctl命令启动数据库
pg_ctl -D /var/lib/pgsql/12/data start
关闭数据库模式,与oracle的关机模式进行对应,方便理解。
Smart shutdown 相当于 oracle的 shutdown normal
Fast shutdown 相当于 oracle的shutdown immediate
immediate shutdown 相当于 oracle的shutdown abort
使用pg_ctl命令,用不同 -m参数指定不同的关机模式
pg_ctl stop -D /var/lib/pgsql/12/data -m smart
pg_ctl stop -D /var/lib/pgsql/12/data -m fast
pg_ctl stop -D /var/lib/pgsql/12/data -m immediate
postgres 加上参数 --single 可以以单用户模式启动,这时postgres不会进入后台服务模式,而是进入交互模式,使用ctr+D 退出交互模式。
有一些场景是需要进入单用户模式操作的,比如修复系统表。
Pg_ctl工具功能使用介绍:
- 可以初始化数据库实例。
pg_ctl init[db] [-s] [-D datadir] [-o options]
-s 只打印错误和警告信息,不打印提示信息。
-o options:直接传递给initdb命令的参数,具体可见initdb命令的帮助信息。
2.启动数据库
pg_ctl start [-w] [-t seconds] [-s] [-D datadir] [-l
filename] [-o options] [-p path] [-c]
-w 等待启动完成
-t 等待启动完成的等待秒数,默认60s
-s 只打印错误和警告信息,不打印提示信息。
-l 把服务器日志输出附件在filename文件上,如果该文件不存在,则会自动创建。
-o options:直接传递给postgres 命令的参数,具体可见postgres命令的帮助信息。
-p path 指定postgres可执行文件的位置,默认是与pg_ctl相同的目录,不必使用该选项。
-c 允许数据库实例在发生某些异常时产生一个coredump文件,以便进行问题定位和故障分析。
停止数据库
pg_ctl stop [-W] [-t seconds] [-s] [-D datadir] [-m
s[mart] | f[ast] | i[mmediate] ]
-W:不等的数据库停止,就返回命令。
-m 指定停止模式。
重启数据库
pg_ctl restart [-w] [-t seconds] [-s] [-D datadir] [-c]
[-m s[mart] | f[ast] | i[mmediate] ] [-o options]
重新读取配置文件
pg_ctl reload [-s] [-D datadir]
查询实例状态
pg_ctl status [-D datadir]
给指定的进程发送信号
pg_ctl kill [signal_name] [process_id]




