PostgreSQL修炼之道:从小工到专家(第2版)
上QQ阅读APP看书,第一时间看更新

2.2.7 启动和停止数据库

启动数据库的命令如下:


pg_ctl start -D $PGDATA

其中,环境变量“PGDATA”指向具体的PostgreSQL数据库的数据目录,示例如下:


osdba@osdba-laptop:~$ pg_ctl start -D /home/osdba/pgdata 
server starting

停止数据库的命令如下:


pg_ctl stop -D $PGDATA [-m SHUTDOWN-MODE]

其中-m用于指定数据库的停止方法,有以下3种模式:

·smart:等所有连接中止后,关闭数据库。如果客户端连接不终止,则无法关闭数据库。

·fast:快速关闭数据库,断开客户端的连接,让已有的事务回滚,然后正常关闭数据库。相当于Oracle数据库关闭时的immediate模式。

·immediate:立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数据库需要进行恢复。相当于Oracle数据库关闭时的abort模式。

PostgreSQL数据库中的immediate关机模式相当于Oracle数据库中的abort关机模式,而Oracle中的immediate关机模式实际上对应的是PostgreSQL中的fast模式,对于从Oracle数据库中转过来的DBA尤其需要注意这一点。

较常用的关闭数据库的方法是fast模式,因为如果采用smart模式,有用户连接到数据库时,系统会一直等待,而无法关闭数据库。PostgreSQL9.5之前的版本默认是smart模式,通常要使用命令“pg_ctl stop -m fast”来关闭数据库,在PostgreSQL9.5以上的版本中可以直接用“pg_ctl stop”命令来关闭数据库。