ページの先頭行へ戻る
Enterprise Postgres 14 SP1 リファレンス
FUJITSU Software

5.1 cm_ctl

名前

Linuxcm_ctl - conmgrプロセスの起動、停止および状態表示

Windowscm_ctl - conmgrプロセスの起動、停止、状態表示、Windowsサービスへの登録および登録解除

概要

cm_ctl start [-D diretory] [-W] [--complete] [-t seconds]
cm_ctl stop [-D diretory] [-W] [-m {smart | fast | immediate}] [-t seconds]
Windowscm_ctl status [-D directory] [-t seconds] [-i {all | instance | application}]
Linuxcm_ctl status [-D directory] [-t seconds] [-i {all | instance | application | shard }]
cm_ctl reload [-D directory]
Windowscm_ctl register [-D directory] [-N servicename] [-U username] [-P password] [-S a[uto] | d[emand] ]
                [-e source] [-W] [--complete] [-t seconds]
cm_ctl unregister [-N servicename]

説明

startモードは、conmgrプロセスを起動します。少なくともプライマリのインスタンスとの間で生死監視の接続が完了するまで待ってからコマンドが復帰します。--completeを指定した場合には、conmgr.confに定義されたすべてのインスタンスとの間に生死監視の接続が完了するまで待ち合わせます。これらの待ち合わせにはタイムアウトを設定できます。タイムアウトのデフォルトは60秒です。-tオプションで変更することができます。タイムアウトした場合は、単に待ち合わせを諦めるだけであり、conmgrプロセスは起動状態のままです。

注意

conmgr.confに設定したインスタンスの中に、プライマリが含まれない場合には、cm_ctlコマンドでConnection Managerを起動するときに、-Wオプションを付けてください。-Wオプションを付けないと、プライマリとの接続が完了できるまでcm_ctlコマンドが復帰しないからです。

これは、例えば、あらかじめ災害対策運用の待機センタ側に対してのみ接続するように設定したconmgrを起動することなどが該当します。


stopモードは、conmgrプロセスにシグナルを送信してシャットダウンし、プロセスが消滅するまで待ち合わせます。待機時間のデフォルトは60秒です。-tオプションで変更することができます。タイムアウトした場合は、単に待ち合わせを諦めるだけです。
シャットダウンの方法には、smart、fastおよびimmediateの3通りがあり、-mオプションで指定します。smartは、conmgrプロセスを使用しているすべてアプリケーションのSQL接続がなくなるまで待ち合わせてからシャットダウンします。fastは、conmgrプロセスを使用しているすべてのアプリケーションとconmgrプロセスとの接続を強制的に切断してからシャットダウンします。結果としてアプリケーションのSQL接続はエラーを受け取ります。immediateは、ただちにconmgrプロセスを終了します。何も指定しなければ、fastモードで停止します。


statusモードは、conmgrプロセスが存在していれば、conmgrプロセスにconmgrプロセスが認識しているインスタンスとアプリケーションの情報を問い合わせて、conmgrプロセス自身の状態とともにそれらを標準出力に出力します。-iオプションによってどのような情報を問い合わせるかを指定できます。
instanceはインスタンスの情報を問い合わせます。applicationは、アプリケーションの情報を問い合わせます。

Linuxshardは接続ルーティング機能が有効な場合、シャードの情報を問い合わせます。

allは、インスタンスとアプリケーションとシャードの情報を問い合わせます。

Windowsallは、インスタンスとアプリケーションの情報を問い合わせます。

conmgrプロセス自身の情報は常に出力されます。問い合わせの応答が返るまでの待機時間のデフォルトは60秒です。-tオプションで変更することができます。

Linuxreloadモードは、conmgrプロセスが存在していれば、conmgrプロセスにSIGHUPシグナルを送信します。 SIGHUPシグナルを受け取ったconmgrプロセスはconmgr.confの再読み込みを行い、再起動を必要としないものについて、変更を反映させることができます。

Windowsregisterモードは、conmgrプロセスをWindows上のシステムサービスとして登録します。-Sオプションにより、“auto”(システムの起動時に自動的にサービスを開始する)と“demand”(要求に応じてサービスを開始する)のいずれかのサービス開始種別を選択できます。

unregisterモードは、Windowsサービスからconmgrプロセスを登録解除します。

オプション

--complete

conmgr.confに設定されたすべてのインスタンスとの間に生死監視の接続が完了するまで待ちます。-Wオプションと同時に使用した場合には、-Wオプションが優先されます。

-D directory
--directory=directory

conmgr.confが配置されたディレクトリを指定します。省略した場合には環境変数CMDATAに指定されたディレクトリを参照します。両方を省略することはできません。

Windows-i {all | instance | application}

状態を表示する情報を指定します。

Linux-i {all | instance | application | shard}

状態を表示する情報を指定します。

-m
--mode={smart | fast | immediate}

シャットダウンのモードを指定します。デフォルトはfastです。

-t seconds
--timeout=seconds

操作が完了するまでの待機時間を指定します。単位は秒です。デフォルトは60秒です。

-W
--no-wait

startモードで指定すると、cm_ctlコマンドは、conmgrプロセスをforkした直後に復帰します。stopモードで指定すると、プロセスの消滅を待たずにcm_ctlコマンドは復帰します。

Windows-e source

Windowsのサービスとして実行する際に、イベントログへの出力用に使用するcm_ctlのイベントソースの名前です。デフォルトはconmgrです。 これはcm_ctl自体から送信されたメッセージのみを制御することに注意してください。conmgrプロセスが起動した後は、conmgr.confのevent_sourceで指定したイベントソースが使用されます。conmgrプロセス起動の非常に早い段階で障害が発生した場合は、conmgr.confで指定したイベントソースが設定されるより前にデフォルトのイベントソース名のconmgrを使用するかもしれません。

-N servicename

登録するWindowsサービスの名前です。 この名前は、システム名としても表示名としても使用されます。 デフォルトはconmgrです。

-P password

サービスを開始するユーザー用のパスワードです。

-S start-type

登録するWindowsサービスの開始種類です。 start-typeはauto、demand、またはこれら2単語の先頭の文字のいずれかです。このオプションを省略した時はautoがデフォルトとなります。

-U username

サービスを開始するユーザーのユーザー名です。ドメインユーザーの場合はDOMAIN\username書式を使用してください。

診断

startモード/stopモードの場合

0: 正常終了

2: タイムアウトが発生

3: 指定したディレクトリへのアクセス不可

上記以外: 上記のいずれでもない

statusモードの場合

0: 正常終了

3: 指定したディレクトリへのアクセス不可

4: conmgrプロセスが存在しない

上記以外: 上記のいずれでもない

Linuxreloadモードの場合

0: 正常終了

3: 指定したディレクトリへのアクセス不可

上記以外: 上記のいずれでもない

Windowsregisterモードの場合

0: 正常終了

0以外: 異常終了

unregisterモードの場合

0: 正常終了

0以外: 異常終了

権限

管理者(例えばLinuxのスーパーユーザー(root)やWindowsの管理者権限を持ったユーザー)はconmgrプロセスを起動することはできません。

statusモードの出力例

-iオプションに指定できる情報ブロックを1つの単位とします。
ブロック間には空行が1行あり、ブロック内には空行がありません。
カラム間や、データ間には1つ以上の空白を含みます。

Linux$ cm_ctl status -i all
conmgr_status:
status pid
(1)    (2)
ready  3456

instance_information:
addr         port  database_attr node_name
(3)          (4)   (5)           (6)
192.0.2.100 27500 standby COORDINATOR 192.0.2.110 27500 primary COORDINATOR 192.0.2.120 27500 unknown datanode1 192.0.2.130 27500 primary datanode1 192.0.2.140 27500 standby datanode2 192.0.2.150 27500 unknown datanode2 application_information: addr port pid connected_time (7) (8) (9) (10) 127.0.0.1 12345 5678 2022-02-15 02:03:04 shard_information: shard_name node_name (11) (12)
shard1 datanode1 shard2 datanode2
(1) conmgrプロセスの状態
    starting : conmgrプロセスは起動シーケンスを開始していますが、
               クライアントからの接続を受け付ける準備ができていません。
    ready    : クライアントからの接続を受け付ける準備ができています。
    stopping : 終了指示を受け取り、停止シーケンスを開始しています。
    inactive : conmgrプロセスが存在しません。
(2) conmgrプロセスのPID
(3) インスタンスのホスト名またはIPアドレス
(4) postmasterが待ち受けるポート番号
(5) インスタンスの状態(primary|primary(read-only)|standby|unknown)
    primary            : プライマリサーバ
    primary(read-only) : プライマリサーバ(デフォルトのトランザクションモードが読み取り専用)
    standby            : スタンバイサーバ
    unknown            : 不明(注)
(6) インスタンスのノード名(注2) 
(7) conmgrプロセスに対する接続元のIPアドレス
(8) conmgrプロセスに対する接続元の(エフェメラル)ポート番号
(9) 接続元のPID
(10) conmgrプロセスに接続した日付と時刻
    ISO8601にも準拠した年月日の後に空白が1つあり、その後にISO8601に準拠した秒精度の時刻が続きます。
    この表現は、PostgreSQLのtimestamp型の文字列表現の1つです。
(11) ノード名に対応するシャード名(注2)
(12) スケールアウト構成のノード名(注2)
注1) インスタンスに接続できない場合に表示されます。
注2) 接続ルーティング機能が有効な場合に表示されます。
Windows$ 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_information:
addr         port  pid   connected_time
(6)          (7)   (8)        (9)
127.0.0.1    12345 5678      2022-02-15 02:03:04
(1) conmgrプロセスの状態
    starting : conmgrプロセスは起動シーケンスを開始していますが、
               クライアントからの接続を受け付ける準備ができていません。
    ready    : クライアントからの接続を受け付ける準備ができています。
    stopping : 終了指示を受け取り、停止シーケンスを開始しています。
    inactive : conmgrプロセスが存在しません。
(2) conmgrプロセスのPID
(3) インスタンスのホスト名またはIPアドレス
(4) postmasterが待ち受けるポート番号
(5) インスタンスの状態(primary|primary(read-only)|standby|unknown)
    primary            : プライマリサーバ
    primary(read-only) : プライマリサーバ(デフォルトのトランザクションモードが読み取り専用)
    standby            : スタンバイサーバ
    unknown            : 不明(注)
(6) conmgrプロセスに対する接続元のIPアドレス
(7) conmgrプロセスに対する接続元の(エフェメラル)ポート番号
(8) 接続元のPID
(9) conmgrプロセスに接続した日付と時刻
    ISO8601にも準拠した年月日の後に空白が1つあり、その後にISO8601に準拠した秒精度の時刻が続きます。
    この表現は、PostgreSQLのtimestamp型の文字列表現の1つです。
注) インスタンスに接続できない場合に表示されます。