postgresql启动关闭

名称:
pg_ctl -- 启动、停止、重启 PostgreSQL
语法
pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o options] [-p path]
pg_ctl stop [-W] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [-w] [-s] [-D datadir] [-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]
pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-w] [-o options]
pg_ctl unregister [-N servicename]

描述:
pg_ctl 用于启动、停止、重启 PostgreSQL 后端服务器(postgres),或者显示一个运行着的服务器的状态。尽管可以手动启动服务器,但是 pg_ctl 封装了重新定向日志输出,与终端和进程组合理分离,以及另外提供了一个选项用于有控制的关闭。
在 start 模式里会启动一个新的服务器。服务器是在后台启动的,标准输入被附着到了 /dev/null 上。如果使用了 -l ,那么标准输出和标准错误将被定向到一个日志文件,要么就是重定向到 pg_ctl 的标准输出(而不是标准错误)。如果没有选定日志文件,pg_ctl 的标准输出应该重定向到一个文件或者用管道输出到类似 rotatelogs这样的日志滚动程序,否则,postgres 将把它的输出写到控制终端(在后台)并且将不会脱离 shell 的进程组。
在 stop 模式下,那个正在特定数据目录运行的服务器将被关闭。你可以用 -m 选项选择三种不同的关闭模式:"Smart"模式等待所有客户端中断连接,这是缺省。"Fast"模式并不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开。"Immediate"模式将在没有干净关闭的情况下强行退出。这么做将导致在重新启动的时候的恢复。
restart 实际上是先执行一个停止,然后紧跟一个启动。它允许变换 postgres 的命令行选项。
reload 模式简单地给 postgres 发送一个 SIGHUP 信号,导致它重新读取配置文件(postgresql.conf,pg_hba.conf 等),这样就允许修改配置文件选项而不用重启系统即可生效。
status 模式监查一个服务器是否在指定的数据目录运行,如果是,那么显示其 PID 和调用它的命令行选项。
kill 模式允许你给一个指定的进程发送信号。这个功能对 Microsoft Windows 特别有用,因为它没有 kill 命令。使用 --help 查看支持的信号名字列表。
register 模式允许你在 Microsoft Windows 上注册一个系统服务。
unregister 模式允许你在 Microsoft Windows 上删除先前用 register 命令注册的系统服务。

实例:
pg_ctl stop -D $PGDATA -m smart
pg_ctl stop -D $PGDATA -m fast
pg_ctl stop -D $PGDATA -m immediate
pg_ctl -D $PGDATA start
对比以上三种关库模式:
smart最为安全,但最慢, 需要将所有连接都断开后,才会关库,默认关库模式。
fast强制中断会话,而不管有操作有没有提交,在做系统维护(系统维护时一般应用都正常关闭了,或者不再会有事务操作。)时,需要这种模式来关闭数据库。
immediate最暴力的方式,不管数据有没有落盘(POSGRE是遵循WAL机制),就直接关掉, 待启动时进行实例恢复, 如果在关库前有大量的事务没有写入磁盘, 那这个恢复过程可能会非常的漫长。

你可能感兴趣的:(PostgreSql)