ユーザーの誤操作によってデータ破壊が発生した場合に、インスタンスをリカバリする方法について、説明します。
たとえば、アプリケーションおよびコマンドによって、誤ったデータを意図しないデータに変更してしまった場合や削除してしまった場合などのように、誤操作によってデータを破壊してしまった場合は、プライマリサーバ上のデータをもとに戻して、スタンバイサーバと再同期する必要があります。
以下の手順で復旧します。
プライマリサーバの特定
各サーバ上でmc_ctlコマンドをstatusモードで実行して、“primary”または“none(inactivated primary)”と表示されるサーバを検索します。
誤操作の原因となったアプリケーションおよびコマンドの停止
プライマリサーバで動作したアプリケーションおよびコマンドを停止します。これにより、誤ったデータによる影響を抑えます。
また、スタンバイサーバで参照用のアプリケーションを実行している場合は、動作中のアプリケーションを停止します。
インスタンスおよびMirroring Controllerの停止
プライマリサーバおよびスタンバイサーバのインスタンスとMirroring Controllerを停止します。
例)
> mc_ctl stop -a -M D:\mcdir\inst1
プライマリサーバのデータベースの復旧
誤操作を行った時間よりも過去のリストアポイントの時点まで、バックアップデータをもとにしたpgx_rcvallコマンドによるリカバリ方法でデータベースを復旧します。
参照
pgx_rcvallコマンドによるリストアポイントの時点までの復旧手順の詳細は、“運用ガイド”の“ユーザーの誤操作からのリカバリ”を参照して、インスタンス停止状態でのデータベースのリカバリ手順のみを行ってください。
インスタンスおよび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モードを使用することにより自動切り替え/切り離しを有効、または無効にすることが可能です。
新スタンバイサーバの構築
“2.5 スタンバイサーバのセットアップ”を参照して、プライマリサーバからスタンバイサーバを構築(セットアップ)します。
ポイント
Windowsサービスへの登録など、既に実施されている手順については再度実施する必要はありません。