脑子进水养啥鱼?

脑子进水养啥鱼?

一、启动

  • 直接运行 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`
08-04 09:54