PostgreSQL7.0手册-用户手册-20. 应用 - 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 的路径:在命令搜索路径里查找.
数据库目录:PGDATA 环境变量.
其他参数:PGDATA/postmaster.opts.default.
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'