ページの先頭行へ戻る
Enterprise Postgres 15 クラスタ運用ガイド(データベース多重化編)

4.1.2 切り離し発生後の縮退運転における運用操作

切り離し発生後の縮退運転における運用操作について、説明します。

注意

スタンバイサーバの異常によって切り離しが発生してからスタンバイサーバの組込みを行うまで、データベースは多重化構成ではありません。できるだけ早急に異常原因を取り除き、スタンバイサーバの組込みを行ってください。

切り離しが発生して縮退運転が行われている場合は、以下の運用操作を行ってスタンバイサーバを復旧してもとの状態に戻します。

これらの運用操作の流れを以下の図に示します。

図4.2 運用操作の流れ

4.1.2.1 異常原因の特定とスタンバイサーバの再構築

以下の手順でリカバリを実施してください。

  1. Mirroring Controllerの停止

  2. Mirroring Controller管理ディレクトリのリカバリ

  3. 異常原因の特定とリカバリ

4.1.2.1.1 Mirroring Controllerの停止

異常が発生したスタンバイサーバに対して、mc_ctlコマンドをstopモードで実行します。

systemdを使用してMirroring Controllerの自動起動・停止の設定を実施している場合は、mc_ctlコマンドではなく、systemctlコマンドを使用してください。詳細は、“2.12 多重化したインスタンスとMirroring Controllerの自動起動・停止の設定”を参照してください。

例)
$ mc_ctl stop -M /mcdir/inst1

これにより、リカバリを実施する必要があるインスタンスも停止します。

注意

停止しない場合は、“運用ガイド”の“インスタンス停止失敗時の対処”を参照して、インスタンスを停止します。

そのあと、上記のコマンドに-eオプションを指定してMirroring Controllerを強制停止してください。

4.1.2.1.2 Mirroring Controller管理ディレクトリのリカバリ

バックアップデータからMirroring Controller管理ディレクトリ配下のファイルをコピーして、リカバリを実施します。

4.1.2.1.3 異常原因の特定とリカバリ

プライマリサーバとスタンバイサーバのシステムログを参照して異常の原因を特定したあと、復旧します。

pg_basebackupコマンドを実行して、プライマリサーバのデータをスタンバイサーバと同期してリカバリします。

例)
$ pg_basebackup -D /database/inst1 -X fetch --waldir=/transaction/inst1 --progress --verbose -R --dbname='application_name=スタンバイサーバ名' -h プライマリサーバのホスト名 -p プライマリサーバのポート番号

参照

このリカバリ手順は、スタンバイサーバをセットアップする手順と同じです。

2.5.2 スタンバイサーバのインスタンスの作成・設定・登録”を参照して、リカバリを実施してください。

4.1.2.2 スタンバイサーバの組込み

スタンバイサーバのMirroring Controllerとインスタンスを起動して、スタンバイサーバを組込みます。

自動切り替え/切り離しを有効化する場合

インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで実行します。

例)
$ mc_ctl start -M /mcdir/inst1
自動切り替え/切り離しを有効化しない場合

インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで-Fオプションを指定して実行します。

例)
$ mc_ctl start -M /mcdir/inst1 -F

ポイント

自動切り替え/切り離しはMirroring Controllerが起動したあとに、mc_ctlコマンドのenable-failoverモード、または、disable-failoverモードを使用することにより自動切り替え/切り離しを有効、または無効にすることが可能です。