pg_ctl

名称

pg_ctl  --  启动,停止,和重起 postmaster

语法

pg_ctl [-w] [-D datadir][-p path] [-o "options"] start
pg_ctl [-w] [-D datadir] [-m [s[mart]|f[ast]|i[mmediate]]] stop
pg_ctl [-w] [-D datadir] [-m [s[mart]|f[ast]|i[mmediate]]
    [-o "options"] restart
pg_ctl [-D datadir] status

输入

-w
通过观察 pid 文件(PGDATA/postmaster.pid)的创建,等待数据库服务器的启动.在 60 秒后超时.
-D datadir
声明这个数据库安装的数据库位置.
-p path
声明 postmaster 影象的位置.
-o "options"
声明直接传递给 postmaster 的选项.

 

 

通常这些参数用单或双引号引起,以保证它们以一组的方式传递.

-m mode

 

 

声明关闭模式.

smart, s

智能模式,等待所有客户端退出.这是缺省.
f[ast], f

快速模式,向后端发送 SIGTERM,这意味着活跃的事务都回卷.
immediate, i

立即模式,向后端发送 SIGUSR1 并且让它们退出.在这种模式,下一次启动将必须进行数据库恢复工作.
start

启动 postmaster.
stop

关闭 postmaster.
restart

重新启动 postmaster,执行一次顺序的 stop/start.
status

显示 postmaster 的当前状态.

输出

pg_ctl: postmaster is state (pid: #)

 

 

Postmaster 状态.

如果存在一个错误条件,将显示出后端的错误信息.

描述

pg_ctl 是一个用于启动,停止和重起 postmaster 的工具.

用法

启动 postmaster

要启动 postmaster:
> pg_ctl start
如果使用了 -w,pg_ctl 等待数据库服务器启动-通过观察 pid 文件(PGDATA/postmaster.pid)的创建,最多等待 60 秒.

激活 postmaster 的参数从下面的资源里获取:

postmaster.opts.default 包含用于 postmaster 的参数.缺省安装时,打开了 -S 选项.因此 pg_ctl start 隐含地是:
postmaster -S
请注意 postmaster.opts.default 是由 initdb 从 Postgres 的安装目录(lib/postmaster.opts.default.sample 是安装 Postgres 时从 src/bin/pg_ctl/postmaster.opts.default.sample )里的� lib/postmaster.opts.default.sample 拷贝来的.

要覆盖缺省的参数,你可以使用 -D,-p 和 -o 选项.

一个启动 postmaster,并等到l postmaster 启动后才退出的例子是:

> pg_ctl -w start
要声明 postmaster 二进制路径,试试:
> pg_ctl -p /usr/local/pgsq/bin/postmaster start
对一个使用端口5433,并且运行在无磁盘同步的模式的 postmaster,使用:
> pg_ctl -o "-o -F -p 5433" start

停止 postmaster

> pg_ctl stop
停止 postmaster.使用 -m 开关以允许我们控制后端是如何停止的.-w 等待 postmaster 停止.-m 声明停止的模式.

重起 postmaster

这个功能几乎等同于停止 postmaster 然后再次启动它-除了停止它前的参数还要使用以外.这是通过在 $PGDATA/postmaster.opts 文件里存储这些参数实现的.-w,-D,-m,-fast,-immediate 也可以在重起模式使用,并且和上面有一样的含义.

要用最简单的方法重起 postmaster:

> pg_ctl restart
要重起 postmaster,等它停止并重新启动:
> pg_ctl -w restart
要在 5433 端口重起并且重起后关闭 fsync:
> pg_ctl -o "-o -F -p 5433" restart

postmaster 状态

要从 postmaster 获取状态信息:
> pg_ctl status
下面是一些从 pg_ctl 里的例子:
pg_ctl: postmaster is running (pid: 13718)
options are:
/usr/local/src/pgsql/current/bin/postmaster
-p 5433
-D /usr/local/src/pgsql/current/data
-B 64
-b /usr/local/src/pgsql/current/bin/postgres
-N 32
-o '-F'