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'