一、启动
- 直接运行 postgres 进程启动。
- 使用 pg_ctl 命令启动。(pg_ctl 命令实际也是封装的 postgres 进程)
示例:
pg_ctl -D /data/pg13/data start
或
postgres -D /data/pg13/data &
二、停止
- 使用 pg_ctl 命令停止,优先选择此方式。
- kill 关闭方式,会阻止服务器释放共享内存和信号量,使用 kill 杀掉 postgres 进程时, postgres 不会有机会将信号传播到它的子进程,可能必须手工杀掉单个的子进程。
示例:
--等待所有客户端断开连接以及任何在线备份结束,相当于 Oracle:shutwodn normal
pg_ctl stop -m smart
或
kill `head -1 /data/pg13/data/postmaster.pid`
kill -term `head -1 /data/pg13/data/postmaster.pid`
--默认方式,不会等待客户端断开连接并且将终止进行中的在线备份。所有活动事务都被回滚并且客户端被强制断开连接,相当于 Oracle:shutwodn immediate
pg_ctl stop -m fast
或
kill -int `head -1 /data/pg13/data/postmaster.pid`
--将立刻中止所有连接,而不是做一次干净的关闭。这将导致下一次重启时进行一次崩溃恢复,相当于 Oracle:shutwodn abort
pg_ctl stop -m immediate
或
kill -quit `head -1 /data/pg13/data/postmaster.pid`