合 PG中的pg_ctl命令
官网:http://postgres.cn/docs/13/app-pg-ctl.html
pg_ctl — 初始化、启动、停止或控制一个PostgreSQL服务器。pg_ctl是PG中初始化数据目录,启动、停止、重启、重加载数据库服务,或者查看数据库服务状态的工具,相比SERVICE或SYSTECTL的管理方式,PG_CTL提供了丰富的控制项,执行PG_CTL命令需要操作系统用户使用SU命令切换到POSTGRES用户。
描述
pg_ctl是一个用于初始化PostgreSQL数据库集簇,启动、停止或重启PostgreSQL数据库服务器(postgres),或者显示一个正在运行服务器的状态的工具。尽管服务器可以被手工启动,pg_ctl包装了重定向日志输出以及正确地从终端和进程组脱离等任务。它也提供了方便的选项用来控制关闭。
init
或initdb
模式会创建一个新的PostgreSQL数据库集簇,也就是将由一个单一服务器实例管理的数据库集合。这个模式调用initdb
命令。详见initdb。
start
模式启动一个新的服务器。该服务器被启动在后台,并且它的标准输出被附加到/dev/null
(或 Windows 上的nul
)。在 Unix 类系统上,默认情况下服务器的标准输出和标准错误被发送到pg_ctl的标准输出(不是标准错误)。pg_ctl的标准输出应该接着被重定向到一个文件或用管道导向另一个进程(例如日志轮转程序rotatelogs)。否则postgres
将把它的输出写到控制终端(从后台)并且将不会离开 shell 的进程组。在 Windows 上,默认情况下服务器的标准输出和标准错误被发送到终端。这些默认行为可以使用-l
追加服务器的输出到一个日志文件来改变。我们推荐使用-l
或输出重定向。
stop
模式关闭运行在指定数据目录中的服务器。对-m
选项可以选择三种不同的关闭方法。“Smart”模式不允许新连接,然后等待所有现有的客户端断开连接以及任何在线备份结束。如果该服务器是热备,一旦所有的客户端已经断开连接,恢复和流复制将被终止。“Fast”模式(默认)不会等待客户端断开连接并且将终止进行中的在线备份。所有活动事务都被回滚并且客户端被强制断开连接,然后服务器被关闭。“Immediate”模式将立刻中止所有服务器进程,而不是做一次干净的关闭。这中选择将导致下一次重启时进行一次崩溃恢复。
restart
模式实际上会先执行一个停止操作然后紧接着执行一个启动操作。这使得我们能够更改postgres
的命令行选项,或者更改不通过重启服务器无法更改的配置文件选项。如果在服务器启动期间在命令行上使用了相对路径,则restart
可能会失败,除非pg_ctl被运行在与上次启动服务器相同的目录中。
reload
模式简单地向postgres
服务器进程发送一个SIGHUP信号,导致它重新读取它的配置文件(postgresql.conf
、pg_hba.conf
等)。这允许改变配置文件选项而无需一次完整的服务器重启来让改变生效。
status
模式检查一个服务器是否运行在指定的数据目录中。如果有一个服务器正在运行,其PID和用来调用它的命令行选项将被显示。如果服务器没有在运行,pg_ctl将返回退出状态 3。如果没有指定一个可以访问的数据目录,pg_ctl将返回退出状态 4。
promote
模式命令运行在指定数据目录中的后备服务器结束后备模式并且开始读写操作。
logrotate
模式轮换服务器日志文件。有关如何将此模式与外部日志轮换工具一起使用的详细信息,参见第 24.3 节。
kill
模式向一个指定进程发送一个消息。这主要用于没有kill命令的Microsoft Windows。使用--help
来查看受支持的信号名称列表。
register
模式把PostgreSQL服务器注册为Microsoft Windows上的一个系统服务。-S
选项允许选择服务启动类型,可以是“auto”(随系统自动启动)或“demand”(按需启动)。
unregister
模式在Microsoft Windows上移除一个系统服务的注册。这会撤销register
命令的效果。
命令
pg_ctl
init[db]
[-D
datadir
] [-s
] [-o
initdb-options
]
pg_ctl
start
[-D
datadir
] [-l
filename
] [-W
] [-t
seconds
] [-s
] [-o
options
] [-p
path
] [-c
]
pg_ctl
stop
[-D
datadir
] [-m
s[mart]
| f[ast]
| i[mmediate]
] [-W
] [-t
seconds
] [-s
]
pg_ctl
restart
[-D
datadir
] [-m
s[mart]
| f[ast]
| i[mmediate]
] [-W
] [-t
seconds
] [-s
] [-o
options
] [-c
]
pg_ctl
reload
[-D
datadir
] [-s
]
pg_ctl
status
[-D
datadir
]
pg_ctl
promote
[-D
datadir
] [-W
] [-t
seconds
] [-s
]
pg_ctl
logrotate
[-D
datadir
] [-s
]
pg_ctl
kill
signal_name
process_id
在Microsoft Windows上,还有:
pg_ctl
register
[-D
datadir
] [-N
servicename
] [-U
username
] [-P
password
] [-S
a[uto]
| d[emand]
] [-e
source
] [-W
] [-t
seconds
] [-s
] [-o
options
]