【PostgreSQL】关于pg_ctl的内容
pg_ctl 是什么意思?
使用PostgreSQL进行启动、停止和状态确认等操作。
执行操作的用户是PostgreSQL的管理用户(通常是postgres用户)。
语法
pg_ctl是一个用于管理PostgreSQL数据库集群的命令行工具。进一步的指令及参数可以在pg_ctl命令后添加。
关于子命令
初始化数据库
initdb是什么?
调用initdb函数,在指定的目录中创建数据库集群。
語法
使用原生的中文重新解释以下内容,并提供一种选项:
pg_ctl init[db] [选项]
在中文中给出其它的翻译选项只能有一个:选项。
オプション説明-D, -pgdata=データベースクラスタデータベースクラスタを作成するディレクトリを指定する。未指定の場合は、環境変数
PGDATA
が使われる-o オプション内部的に呼び出すinitdb
に渡すオプションを指定する使用示例
在 /var/lib/pgsql/test 中创建数据库集群。
pg_ctl -D /var/lib/pgsql/test initdb
不需要本地区域设置,在/pgdata目录中创建数据库集群的UTF8编码。
pg_ctl initdb -D /pgdata -o "--encoding=UTF8 --no-locale"
开始
“起始”是指
在后台启动PostgreSQL。
如果在指定时间内无法启动,那么pg_ctl start会失败,但是失败的是pg_ctl start本身,而不是PostgreSQL的启动。正在启动的PostgreSQL将使用指定的数据库集群。不能同时启动使用相同数据库集群的多个PostgreSQL实例。
句子结构
使用pg_ctl start命令[选项]开始
选项
オプション説明-D, -pgdata=データベースクラスタデータベースクラスタを作成するディレクトリを指定する。未指定の場合は、環境変数
PGDATA
が使われる-t 最大待ち時間起動が完了するまでの最大待ち時間を秒単位で指定する(デフォルトは60秒)下面是一个使用例
在/pgdata的数据库集群上启动PostgreSQL,并等待最多2分钟(120秒)直到启动完成。
pg_ctl start -D /pgdata -t 120
停止
停止 (Stop) 的含义
停止(关闭)PostgreSQL。
语法
pg_ctl 停止 [选项]
以下是一个选项的中文翻译:选择
オプション説明-D, -pgdata=データベースクラスタデータベースクラスタを作成するディレクトリを指定する。未指定の場合は、環境変数
s[mart]:スマートシャットダウン
クライアントからの接続がすべて切断されるまで待ってから停止する接続が残っている限り、停止は完了しないため注意すること。
f[ast]:高速シャットダウン
クライアントからの接続をすべて強制的に切断してから停止する。デフォルトのシャットダウンモード。実行中のトランザクションはすべてロールバックされる。
i[mmediate]:即時シャットダウン
クリーンアップ処理を行わずに緊急停止する(PostgreSQLがクラッシュしたのと同じ状態になる)次回の起動時には復旧処理が必要になる。このモードは、緊急時(たとえば、高負荷のため他のモードではすぐに停止できないとき)またはPostgreSQLのクラッシュを模擬する場合のみに使うこと。
PGDATA
が使われる-W停止が完了するまで待たない-t 最大待ち時間停止が完了するまでの最大待ち時間を秒単位で指定する(デフォルトは60秒)-m シャットダウンモード停止方法を指定するs[mart]:スマートシャットダウン
クライアントからの接続がすべて切断されるまで待ってから停止する接続が残っている限り、停止は完了しないため注意すること。
f[ast]:高速シャットダウン
クライアントからの接続をすべて強制的に切断してから停止する。デフォルトのシャットダウンモード。実行中のトランザクションはすべてロールバックされる。
i[mmediate]:即時シャットダウン
クリーンアップ処理を行わずに緊急停止する(PostgreSQLがクラッシュしたのと同じ状態になる)次回の起動時には復旧処理が必要になる。このモードは、緊急時(たとえば、高負荷のため他のモードではすぐに停止できないとき)またはPostgreSQLのクラッシュを模擬する場合のみに使うこと。
例子的使用
使用智能关机方式停止在/pgdata数据库集群上运行的PostgreSQL。
pg_ctl stop -D /pgdata -m smart
重新开始
Restare指的是什么?
指定した停止が完了していない場合のみです。
语法结构
重启pg_ctl [选项]
一个选项
オプション説明-D, -pgdata=データベースクラスタ再起動するPostgreSQLが使っているデータベースクラスタを指定する。未指定の場合は、環境変数
PGDATA
が使われる-m シャットダウンモード停止方法を指定する-t 最大待ち時間起動/停止が完了するまでの最大待ち時間を秒単位で指定する(デフォルトは60秒)例子的用法
pg_ctl restart -D /pgdata -m f
重新加载
重新加载是指重新装入或重新开始的意思。
重新加载PostgreSQL的配置文件。
需要重新加载的配置文件有postgresql.conf和pg_hba.conf这两个。
要将配置文件的更改应用到正在运行的PostgreSQL中,需要执行重新加载操作。
但是,重新加载操作无法应用特定的配置参数更改。
结构
重新加载(reload)pg_ctl命令的选项(オプション)。
以下是中文的同义句:
选项
オプション説明-D, -pgdata=データベースクラスタ設定ファイルを再読み込みさせるPostgreSQLが使っているデータベースクラスタを指定する。未指定の場合は、環境変数
PGDATA
が使われる以下为使用例:
pg_ctl reload -D /pgdata
状态
「status」是指的
确认PostgreSQL是否已启动。
結構
查询pg_ctl的状态[选项]
选择
オプション説明-D, -pgdata=データベースクラスタ起動の確認対象となるPostgreSQLが使っているデータベースクラスタを指定する。未指定の場合は、環境変数
PGDATA
が使われる用例示例
pg_ctl status -D /pgdata
杀
杀死一词的意思是
可以在不支持kill命令的Windows等环境中发送信号,以触发进程。可以发送的信号包括HUP、INT、QUIT、ABRT、TERM、USR1和USR2。
发送信号时的效果
シグナル効果TERMPostgreSQLをスマートシャットダウンで停止する。
pg_ctl stop -m smart
と同じINTPostgreSQLを高速シャットダウンで停止する。pg_ctl stop -m fast
と同じQUITPostgreSQLを即時シャットダウンで停止する。pg_ctl stop -m immediate
と同じHUPPostgreSQLを設定ファイルを再読み込みさせる。pg_ctl stop -m reload
と同じ语法
使用pg_ctl命令,发送指定信号的操作到指定进程ID
使用示例
pg_ctl kill TERM プロセスID