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

4.5 ユーザーの誤操作からのリカバリ

ユーザーの誤操作によってデータ破壊が発生した場合に、インスタンスをリカバリする方法について、説明します。

たとえば、アプリケーションおよびコマンドによって、誤ったデータを意図しないデータに変更してしまった場合や削除してしまった場合などのように、誤操作によってデータを破壊してしまった場合は、プライマリサーバ上のデータをもとに戻して、スタンバイサーバと再同期する必要があります。

以下の手順で復旧します。

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

    各サーバ上でmc_ctlコマンドをstatusモードで実行して、“primary”または“none(inactivated primary)”と表示されるサーバを検索します。

  2. 誤操作の原因となったアプリケーションおよびコマンドの停止

    プライマリサーバで動作したアプリケーションおよびコマンドを停止します。これにより、誤ったデータによる影響を抑えます。

    また、スタンバイサーバで参照用のアプリケーションを実行している場合は、動作中のアプリケーションを停止します。

  3. インスタンスおよびMirroring Controllerの停止

    プライマリサーバおよびスタンバイサーバのインスタンスとMirroring Controllerを停止します。

    例)
    $ mc_ctl stop -a -M /mcdir/inst1
  4. プライマリサーバのデータベースの復旧

    誤操作を行った時間よりも過去のリストアポイントの時点まで、バックアップデータをもとにしたpgx_rcvallコマンドによるリカバリ方法でデータベースを復旧します。

    参照

    pgx_rcvallコマンドによるリストアポイントの時点までの復旧手順の詳細は、“運用ガイド”の“ユーザーの誤操作からのリカバリ”を参照して、インスタンス停止状態でのデータベースのリカバリ手順のみを行ってください。

  5. インスタンスおよびMirroring Controllerの起動

    プライマリサーバでインスタンスおよび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モードを使用することにより自動切り替え/切り離しを有効、または無効にすることが可能です。

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

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