Oracle DataGuardフェイルオーバー後のRMANリストアに失敗したマスター・ライブラリの使用
4518 ワード
(一)DGフェイルオーバ後にバックアップに切り替える方法
DGがフェイルオーバを実行すると,マスタライブラリとスレーブライブラリの関係が破壊される.このとき主従関係を回復するには、次の3つの方法を使用します.失敗したメインライブラリをバックアップとして再構築し、この方法は比較的時間がかかる. データベースフラッシュバックメソッドを使用して、失敗したプライマリ・データベースをバックアップに変換します.このメソッドはフラッシュバック・データベース機能に依存し、本番環境では有効になっていません. RMANバックアップを使用して、失敗したプライマリ・ライブラリをバックアップに変換します.この方法では、失敗する前にプライマリ・ライブラリにRMANバックアップが必要になります.
ここでは第3の方法についてのみ説明する.
(二)RMANバックアップを使用してリストアに失敗したマスターライブラリをスタンバイSTEP 1とする:古いスタンバイライブラリがマスターライブラリになったことを確認したときのSCNが新しいマスターデータベースにあることを確認し、以下のSQL文を使用して古いスタンバイデータベースが新しいマスターライブラリに変換されたときのSCNを問い合わせる
STEP 2:データベース全体の修復と復元STANDBYを使用BECAME_PRIMARY_SCNの前のバックアップでデータベースを修復し、ポイント・イン・タイム・ベースのリカバリを実行します.次のRMANコマンドを使用します.
STEP 3:データベースを物理バックアップに変換する古いプライマリ・データベースで次の手順を実行します.
(1)制御ファイルを代替制御ファイルに変換する
(2)データベースを閉じ、mount状態にデータベースを起動する
STEP 4:読み取り専用でデータベースを開く
この手順の目的は、データ辞書チェックを使用して制御ファイルをデータベースと同期させ、このコマンドを実行した後、データベースアラートログファイルで推奨される操作を確認することです.通常、フェイルオーバ中に古いプライマリ・ライブラリがデータ・ファイルを追加、削除していない場合、ユーザーは何のアクションも必要ありません.
STEP 5:REDOログの新しいスタンバイへの転送を再開新しいスタンバイが作成される前に、新しいプライマリ・ライブラリはREDOログのリモート・アドレスへの転送を停止している可能性があります.再転送サービスを開始する場合は、プライマリ・データベースで次のコマンドを実行します.(1)現在のアーカイブ・ログの保存先を問い合わせる
(2)必要に応じて、アーカイブ先アドレスを有効にする
(3)スタンバイ・データベースが新しいプライマリ・データベースからログの受信を開始していることを確認するログ切替コマンド
新しいリポジトリでは、LOG_を変更する必要がある場合があります.ARCHIVE_DEST_nパラメータ(特にプライマリ・スタンバイ環境)は、REDOデータが他のデータベースに転送されないことを確認します.
STEP 6:redoアプリケーションを開く次のコマンドを使用してredoログアプリケーションを開く
これで、元のマスターライブラリをスタンバイライブラリに切り替えます.
【完】
関連ドキュメント:1.Oracle DataGuardマスター・スイッチ(switchover)2.Oracle Dataguardフェイルオーバ操作3.Oracle DataGuardフェイルオーバー後のRMANリストアに失敗したマスター・ライブラリの使用
DGがフェイルオーバを実行すると,マスタライブラリとスレーブライブラリの関係が破壊される.このとき主従関係を回復するには、次の3つの方法を使用します.
ここでは第3の方法についてのみ説明する.
(二)RMANバックアップを使用してリストアに失敗したマスターライブラリをスタンバイSTEP 1とする:古いスタンバイライブラリがマスターライブラリになったことを確認したときのSCNが新しいマスターデータベースにあることを確認し、以下のSQL文を使用して古いスタンバイデータベースが新しいマスターライブラリに変換されたときのSCNを問い合わせる
SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;
STEP 2:データベース全体の修復と復元STANDBYを使用BECAME_PRIMARY_SCNの前のバックアップでデータベースを修復し、ポイント・イン・タイム・ベースのリカバリを実行します.次のRMANコマンドを使用します.
RMAN> RUN
{
SET UNTIL SCN <standby_became_primary_scn + 1>;
RESTORE DATABASE;
RECOVER DATABASE;
}
STEP 3:データベースを物理バックアップに変換する古いプライマリ・データベースで次の手順を実行します.
(1)制御ファイルを代替制御ファイルに変換する
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
(2)データベースを閉じ、mount状態にデータベースを起動する
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
STEP 4:読み取り専用でデータベースを開く
SQL> ALTER DATABASE OPEN READ ONLY;
この手順の目的は、データ辞書チェックを使用して制御ファイルをデータベースと同期させ、このコマンドを実行した後、データベースアラートログファイルで推奨される操作を確認することです.通常、フェイルオーバ中に古いプライマリ・ライブラリがデータ・ファイルを追加、削除していない場合、ユーザーは何のアクションも必要ありません.
STEP 5:REDOログの新しいスタンバイへの転送を再開新しいスタンバイが作成される前に、新しいプライマリ・ライブラリはREDOログのリモート・アドレスへの転送を停止している可能性があります.再転送サービスを開始する場合は、プライマリ・データベースで次のコマンドを実行します.(1)現在のアーカイブ・ログの保存先を問い合わせる
SQL> SELECT DEST_ID, DEST_NAME, STATUS, PROTECTION_MODE, DESTINATION, ERROR,SRL FROM V$ARCHIVE_DEST_STATUS;
(2)必要に応じて、アーカイブ先アドレスを有効にする
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_n=ENABLE;
(3)スタンバイ・データベースが新しいプライマリ・データベースからログの受信を開始していることを確認するログ切替コマンド
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> SELECT DEST_ID, DEST_NAME, STATUS, PROTECTION_MODE, DESTINATION, ERROR,SRL FROM V$ARCHIVE_DEST_STATUS;
新しいリポジトリでは、LOG_を変更する必要がある場合があります.ARCHIVE_DEST_nパラメータ(特にプライマリ・スタンバイ環境)は、REDOデータが他のデータベースに転送されないことを確認します.
STEP 6:redoアプリケーションを開く次のコマンドを使用してredoログアプリケーションを開く
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
これで、元のマスターライブラリをスタンバイライブラリに切り替えます.
【完】
関連ドキュメント:1.Oracle DataGuardマスター・スイッチ(switchover)2.Oracle Dataguardフェイルオーバ操作3.Oracle DataGuardフェイルオーバー後のRMANリストアに失敗したマスター・ライブラリの使用