18.5. 关闭服务器

有几种关闭数据库服务器的方法。您可以通过向主机postgres进程发送不同的 signal 来控制关闭的类型。

pg_ctl程序提供了一个方便的接口,用于发送这些 signal 以关闭服务器。或者,您可以在非 Windows 系统上使用kill直接发送 signal。可以使用ps程序或通过数据目录中的文件postmaster.pid找到postgres进程的 PID。例如,要进行快速关机:

$ kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`

Important

最好不要使用 SIGKILL 关闭服务器。这样做将阻止服务器释放共享内存和 signal 量,然后可能必须先手动完成这些操作,然后才能启动新服务器。此外,SIGKILL 会杀死postgres进程而不让其将 signal 中继到其子进程,因此也有必要手动杀死各个子进程。

要在允许其他会话 continue 进行的同时终止单个会话,请使用pg_terminate_backend()(请参见Table 9.78)或向与该会话关联的子进程发送 SIGTERMsignal。

上一章 首页 下一章