名前
cm_ctl - conmgrプロセスの起動、停止および状態表示
概要
cm_ctl start [-D diretory] [-W] [--complete] [-t seconds]
cm_ctl stop [-D diretory] [-W] [-m {smart | fast | immediate}] [-t seconds]
cm_ctl status [-D directory] [-t seconds] [-i {all | instance | application}]
説明
startモードは、conmgrプロセスを起動します。少なくともプライマリのインスタンスとの間で生死監視の接続が完了するまで待ってからコマンドが復帰します。--completeを指定した場合には、conmgr.confに定義されたすべてのインスタンスとの間に生死監視の接続が完了するまで待ち合わせます。これらの待ち合わせにはタイムアウトを設定できます。タイムアウトのデフォルトは60秒です。-tオプションで変更することができます。タイムアウトした場合は、単に待ち合わせを諦めるだけであり、conmgrプロセスは起動状態のままです。
stopモードは、conmgrプロセスにシグナルを送信してシャットダウンし、プロセスが消滅するまで待ち合わせます。待機時間のデフォルトは60秒です。-tオプションで変更することができます。タイムアウトした場合は、単に待ち合わせを諦めるだけです。
シャットダウンの方法には、smart、fastおよびimmediateの3通りがあり、-mオプションで指定します。smartは、conmgrプロセスを使用しているすべてアプリケーションのSQL接続がなくなるまで待ち合わせてからシャットダウンします。fastは、conmgrプロセスを使用しているすべてのアプリケーションとconmgrプロセスとの接続を強制的に切断してからシャットダウンします。結果としてアプリケーションのSQL接続はエラーを受け取ります。immediateは、ただちにconmgrプロセスを終了します。何も指定しなければ、smartモードで停止します。
statusモードは、conmgrプロセスが存在していれば、conmgrプロセスにconmgrプロセスが認識しているインスタンスとアプリケーションの情報を問い合わせて、conmgrプロセス自身の状態とともにそれらを標準出力に出力します。-iオプションによってどのような情報を問い合わせるかを指定できます。
instanceはインスタンスの情報を問い合わせます。applicationは、アプリケーションの情報を問い合わせます。allは、インスタンスとアプリケーションの情報を問い合わせます。conmgrプロセス自身の情報は常に出力されます。問い合わせの応答が返るまでの待機時間のデフォルトは60秒です。-tオプションで変更することができます。
オプション
conmgr.confに設定されたすべてのインスタンスとの間に生死監視の接続が完了するまで待ちます。-Wオプションと同時に使用した場合には、-Wオプションが優先されます。
conmgr.confが配置されたディレクトリを指定します。省略した場合には環境変数CMDATAに指定されたディレクトリを参照します。両方を省略することはできません。
状態を表示する情報を指定します。
シャットダウンのモードを指定します。デフォルトはsmartです。
操作が完了するまでの待機時間を指定します。単位は秒です。デフォルトは60秒です。
startモードで指定すると、cm_ctlコマンドは、conmgrプロセスをforkした直後に復帰します。stopモードで指定すると、プロセスの消滅を待たずにcm_ctlコマンドは復帰します。
診断
0: 正常終了
2: タイムアウトが発生
3: 指定したディレクトリへのアクセス不可
上記以外: 上記のいずれでもない
0: 正常終了
2: タイムアウトが発生
3: 指定したディレクトリへのアクセス不可
4: conmgrプロセスが存在しない
上記以外: 上記のいずれでもない
権限
管理者(例えばLinuxのスーパーユーザー(root))はconmgrプロセスを起動することはできません。
例
-iオプションに指定できる情報ブロックを1つの単位とします。
ブロック間には空行が1行があり、ブロック内には空行がありません。
カラム間や、データ間には1つ以上の空白を含みます。
$ cm_ctl status -i all conmgr_status: status pid (1) (2) ready 3456 instance_information: addr port database_attr (3) (4) (5) 192.0.2.100 27500 standby 192.0.2.110 27500 primary 192.0.2.120 27500 standby 192.0.2.130 27500 unknown application_infomation: addr port pid connected_time (6) (7) (8) (9) 127.0.0.1 12345 5678 2020-01-15 02:03:04
(1) conmgrプロセスの状態 starting : conmgrプロセスは起動シーケンスを開始していますが、 クライアントからの接続を受け付ける準備ができていません。 ready : クライアントからの接続を受け付ける準備ができています。 stopping : 終了指示を受け取り、停止シーケンスを開始しています。 inactive : conmgrプロセスが存在しません。 (2) conmgrプロセスのPID (3) インスタンスのIPアドレス (4) postmasterが待ち受けるポート番号 (5) インスタンスの状態(primary|standby|unknown) (6) conmgrプロセスに対する接続元のIPアドレス (7) conmgrプロセスに対する接続元の(エフェメラル)ポート番号 (8) 接続元のPID (9) conmgrプロセスに接続した日付と時刻 ISO8601にも準拠した年月日の後に空白が1つあり、その後にISO8601に準拠した秒精度の時刻が続きます。 この表現は、PostgreSQLのtimestamp型の文字列表現の1つです。