名前
mc_ctl - Mirroring Controllerの起動、停止、サーバの状態表示、切り替え、切り離し、およびスタンバイサーバの構築
概要
mc_ctl start [-M mcdir] [-w] [-f] [--mc-only] [--local-server server_id]
mc_ctl stop [-M mcdir] [[-a] [--mc-only] | [-e]] [--local-server server_id]
mc_ctl status [-M mcdir] [--local-server server_id]
mc_ctl switch [-M mcdir] [--local-server server_id]
mc_ctl enable-failover [-M mcdir] [--local-server server_id]
mc_ctl disable-failover [-M mcdir] [--local-server server_id]
mc_ctl setup [-M mcdir] -r standby -U username [-P password] -h hostname -p port -standby-name=standby_name [-c connstr] [--local-server=server_id]
説明
mc_ctlはMirroring Controllerの起動、停止、サーバの状態表示、切り替え、および切り離しを行うコマンドです。
startモードは、新たにMirroringControllerを起動します。--mc-onlyオプションを指定しない場合はデータベースのインスタンスを起動します。診断結果を取得する場合は-wオプションを指定してください。
stopモードは、Mirroring Controllerを停止します。--mc-onlyオプションを指定しない場合はデータベースのインスタンスを停止します。スタンバイサーバ上で--mc-onlyオプションを指定せずに実行した場合、プライマリサーバからスタンバイサーバを切り離します。
statusモードは、Mirroring Controllerが監視するサーバ、データベースのインスタンスのプロセスおよびディスクの状態を表示します。
switchモードは、プライマリサーバの切り替えを行います。切り替えを行うと、プライマリサーバのデータベースのインスタンスが停止し、スタンバイサーバのデータベースのインスタンスがプライマリサーバに昇格して縮退運転になります。
enable-failoverモードは、自動切り替え/切り離しの有効化を行います。このモードはMirorring Controllerオプションをインストールした場合に使用できます。
disable-failoverモードは、自動切り替え/切り離しの無効化を行います。このモードはMirorring Controllerオプションをインストールした場合に使用できます。
setupモードは、スタンバイサーバを構築します。
コマンドを実行するサーバでMirroring Controllerが起動していない場合、startモード、およびstatusモード以外のコマンドはエラーで終了します。
このコマンドは、インスタンス管理者ユーザーで実行してください。
プライマリサーバのMirroring Controllerを起動後スタンバイサーバのMirroring Controllerが起動されるまでの間、プライマリサーバのみでも運用が継続できるようにスタンバイサーバの切り離しが発生しますが、スタンバイサーバのMirroring Controllerを起動するとスタンバイサーバが組み込まれ、多重化構成での運用が行えるようになります。
オプション
全サーバのMirroring Controllerを停止する場合に指定します。
プライマリサーバとの接続に使用するパラメータを指定します。
connstrには、“PostgreSQL文書”の“スタンバイサーバの設定”の“primary_conninfo”のパラメタが指定できます。ただし、パラメータキーワード形式のみ指定できます。
詳細については、“PostgreSQL 文書”の“リカバリの設定”の“スタンバイサーバの設定”を参照してください。
なお、以下のキーワードはコマンドのオプションで設定した内容を設定するため、-cオプションに指定するとエラーになります。
host, port, user, password, application_name
キーワードとオプションの対応は以下のとおりです。
host : -hオプション port : -pオプション user : -Uオプション password : -Pオプション application_name : --standby-nameオプション
実行しているサーバ上のMirroring Controllerを強制停止する場合に指定します。
Mirroring Controller起動直後に自動切り替え/切り離しの有効化を行う場合に指定します。
このオプションはMirorring Controllerオプションをインストールした場合に使用できます。
プライマリサーバのホスト名またはIPアドレスを指定します。
システムテストなどの目的のため、プライマリサーバとスタンバイサーバを擬似的に単一のサーバ内に構築した場合に、操作対象のサーバを特定するために指定します。
server_idには、network.confファイルに指定したサーバ識別子を指定します。半角空白以外のASCII文字が指定可能です。指定したサーバ識別子のサーバに対してログインして操作をしているものと見なして動作します。
Mirroring Controllerのプロセスのみを起動、停止する場合に指定します。startモードでは、データベースのインスタンスが起動中の場合にのみ指定可能です。本オプションを省略した場合、データベースのインスタンスも同時に起動、停止します。
Mirroring Controller管理ディレクトリを指定します。ディレクトリパスには半角空白以外のASCII文字が指定可能です。これが省略された場合、MCCONTROLDIR環境変数が使われます。
ユーザ名に指定したユーザに対するパスワードを指定します。パスワードファイルにパスワードを指定した場合は省略可能です。
プライマリサーバのデータベースインスタンスのポート番号を指定します。
スタンバイサーバを構築する場合に指定します。
スタンバイサーバ名を指定します。スタンバイサーバ名には、プライマリサーバのpostgresql.confファイルに指定するsynchronous_standby_nameパラメータと同じ名前を指定します。
REPLICATION権限を持つユーザ名を指定します。
操作の完了を待ち合わせします。
環境
Mirroring Controller管理ディレクトリを指定します。ディレクトリパスには半角空白以外のASCII文字が指定可能です。-Mオプションを指定して上書きすることができます。
診断
0: 正常終了
0以外: 異常終了
注釈
このコマンドの実行、自動切り替え、および自動切り離しの処理中にサーバがダウンした場合や、プライマリサーバとスタンバイサーバの間の通信が途絶した場合に、他にmc_ctlコマンドを実行中でないにもかかわらず、実行中のメッセージを出力して異常終了する場合があります。この問題を解決するには、他にmc_ctlコマンドを操作している人がいないことを確認したあと、Mirroring Controllerを再起動してください。その後、必要な操作を実施してください。
このコマンドの実行中に通信のタイムアウトエラーが発生し、メッセージの表示内容とMirroring Controllerのプロセスまたはインスタンスのプロセスの状態が異なる場合があります。必要に応じてメッセージに記載されている“利用者の処置”にしたがって対処を実施してください。
enable-failoverモード、disable-failoverモード、および、startモードの-fオプションによる自動切り替え/切り離しは、Mirroring Controller起動中にのみ有効となります。このため、自動切り替え/切り離しを有効化する場合は、Mirroring Controllerを起動する度に有効化してください。
このコマンドを実行した時点で、postgresql.confファイルに記述誤りがある場合、コマンドが異常終了します。その場合には、postgresql.confファイルを修正してから、コマンドを再実行してください。
例
Mirroring Controllerを起動します。
$ mc_ctl start -M /mcdir/inst1
mirroring status ---------------- (1) server_id host_role host host_status db_proc_status disk_status (2) (3) (4) (5) (6) (7)
(1) 多重化状態 switchable : 切替可能 switching : 切替途中 switched : 切替済(切り替えが終わって縮退運用の状態になった場合に表示されます) not-switchable : 切替不可(切り離しが行われて切り替えができない場合に表示されます) unknown : 不明(注1) failover-disabled : フェイルオーバが無効化されている状態 (2) サーバ識別子 (3) サーバの役割 primary : プライマリ standby : スタンバイ none(inactivated primary): 役割なし (停止中のプライマリ、またはプライマリとして定義中) none(inactivated standby): 役割なし (停止中のスタンバイ、またはプライマリとして定義中) unknown : 不明(注1) (4) ホスト名またはIPアドレス (5) サーバの生死状態 normal : 正常稼動 abnormal : 異常 unknown : 不明(注1) (6) DBMSプロセスの状態 normal : 正常 abnormal(異常プロセス名(注2)) : 異常 unknown : 不明(注1) (7) ディスクの状態 normal : 正常 abnormal(異常ディスクの種類(注3)) : 異常 unknown : 不明(注1)
注1) Mirroring Controllerが停止状態, 管理用ネットワーク異常, Mirroring Controllerのダウン/無応答が発生している場合に表示されます。
注2) 異常を検知したDBMSプロセスがコンマ区切りで出力されます。意味は以下のとおりです。 ・postmaster アプリケーション接続を受け付けるプロセス(postmaster)の異常を検知したことを意味します。 ・wal_senderまたはwal_receiver トランザクションログを送受信するプロセス(wal sender、またはwal receiver)の異常を検知したことを 意味します。 注3) 異常を検知したディスクの種類がコンマ区切りで出力されます。意味は以下のとおりです。 ・data データ格納ディスクの異常を検知したことを意味します。 ・tran_log トランザクションログ格納ディスクの異常を検知したことを意味します。 ・tablespace テーブル空間格納ディスクの異常を検知したことを意味します。