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

4.4 すべてのデータベースサーバまたはインスタンスが停止した場合の対処

すべてのデータベースサーバまたはデータベースサーバ上のインスタンスが停止して、業務が継続できなくなった場合について、説明します。

参照

データベース多重化運用への復旧

データベース多重化運用へ復旧するには、“4.1.1.2 スタンバイサーバの組込み”および“4.1.1.3 プライマリサーバの切り戻し”を参照してください。

復旧操作の概要

データベース多重化システムを構成する特定のサーバにおいて、異常が発生する直前の状態にデータベースを復旧したあと、データベース多重化システムを再構築します。

つまり、データベースを復旧するサーバを特定して新プライマリサーバとして復旧したあと、それ以外のサーバを新スタンバイサーバとして再構築します。

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

図4.3 復旧操作の流れ

以下の手順で実施してください。

  1. アプリケーションの停止

    アプリケーションの実行を停止します。

  2. Mirroring Controllerの停止

    データベース多重化システムを構成するすべてのサーバで、mc_ctlコマンドをstopモードで実行します。

    例)
    > mc_ctl stop -M D:\mcdir\inst1

    注意

    Mirroring Controllerの強制停止

    Mirroring Controllerが停止しない場合は、mc_ctlコマンドのstopモードに-eオプションを指定して実行します。

    例)
    > mc_ctl stop -M D:\mcdir\inst1 -e
  3. データベースの復旧の前作業

    “運用ガイド”の“異常時の対処”を参照して、異常原因の特定と障害ディスクのリカバリなど、データベースが復旧できるまでの作業を実施してください。

  4. 新プライマリサーバの特定

    データベース多重化システムを構成するすべてのサーバで以下の操作を行って、最新の日付を示すバックアップデータが存在するサーバを調べます。このサーバがデータベースを復旧するサーバとなり、新プライマリサーバとなります。

    例)
    pgx_rcvallコマンドに-lオプションを付けて実行して、最新の日付を示すバックアップデータを特定する例を以下に示します。
    > pgx_rcvall -l -D D:\database\inst1
    Date                    Status         Dir
    2013-07-01 13:30:40     COMPLETE       E:/backup/inst1/2013-07-01_13-30-40
  5. 新プライマリサーバのデータベースの復旧

    バックアップデータをもとにしたpgx_rcvallコマンドによるリカバリ方法でデータベースを復旧します。

    1. データベース多重化ステムを構築しているすべてのサーバで以下の操作を行って、最新の日付を示すアーカイブログおよび二重化されたトランザクションログが存在するサーバを調べます。

      例)
      最新の日付を示すアーカイブログおよび二重化されたトランザクションログを特定する例を以下に示します。
      > dir /OD <バックアップデータ格納先ディレクトリ>\*_wal
    2. 最新のアーカイブログおよび二重化されたトランザクションログが存在するサーバが、手順4で特定した新プライマリサーバと異なる場合は、新プライマリサーバのバックアップ格納先ディレクトリに、以下に示すディレクトリ配下のすべてのファイルおよびディレクトリを複写して上書きします。

      アーカイブログおよび二重化されたトランザクションログの配置先ディレクトリ
      <バックアップデータ格納先ディレクトリ>\*_wal
    3. 新プライマリサーバ上で、pgx_rcvallコマンドを新プライマリサーバのバックアップ格納先ディレクトリを指定して実行します。

      例)
      pgx_rcvallコマンドに-Bオプションを付けて実行する例を以下に示します。
      > pgx_rcvall -B E:\backup\inst1 -D D:\database\inst1

    参照

    pgx_rcvallコマンドの詳細については、“運用ガイド”の“異常時の対処”を参照してください。

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

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

  7. インスタンスとMirroring Controllerの起動

    新プライマリサーバでインスタンスおよびMirroring Controllerを起動します。

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

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

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

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

    例)
    > mc_ctl start -M D:\mcdir\inst1 -F

    ポイント

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

  8. アプリケーションの再開

    アプリケーションの実行を再開します。

  9. 新スタンバイサーバの構築

    2.5 スタンバイサーバのセットアップ”を参照して、プライマリサーバからスタンバイサーバを構築(セットアップ)します。

    ポイント

    Windowsサービスへの登録など、既に実施されている手順については再度実施する必要はありません。