Data Guard デプロイを検証する
Data Guard ブローカーの設定が完了したら、REDO がプライマリ データベースからコピーされ、スタンバイ データベースに適用されたことを確認する必要があります。次の手順で、プライマリ データベースとスタンバイ データベース内から Data Guard のステータスを確認できます。
このガイド全体を通して、次の例を使用します。
データベースの一意の名前 | サーバーのホスト名 | RAC インスタンス名 | 役割 |
---|---|---|---|
DBDG_SITE1 | site1db1、site1db2 | DBDG_SITE11、DBDG_SITE12 | プライマリ |
DBDG_SITE2 | site2db1、site2db2 | DBDG_SITE21、DBDG_SITE22 | スタンバイ |
Data Guard デプロイを検証する
プライマリ データベースをホストする最初の Bare Metal Solution サーバーにログインし、プライマリ データベースに接続できるように
ORACLE_SID
環境変数を設定します。source oraenv <<< "DBDG_SITE11"
SQL*Plus を起動して、アーカイブ REDO ログの最新のシーケンス番号を確認します。
sqlplus / as sysdba
SELECT THREAD#, max(SEQUENCE#) "Last Primary Seq Archived" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
次の出力では、スレッド 1 の最大シーケンス番号が 40、スレッド 2 の最大シーケンス番号が 33 になっています。
THREAD# Last Primary Seq Archived ---------- ------------------------- 1 40 2 33
スタンバイ データベースとの比較結果を記録します。スタンバイ データベースのシーケンス番号は、プライマリ データベースと一致しているはずです。
スタンバイ データベースをホストする最初の Bare Metal Solution サーバーにログインし、スタンバイ データベースに接続できるように
ORACLE_SID
環境変数を設定します。source oraenv <<< "DBDG_SITE21"
SQL*Plus を起動した後、受信したアーカイブ REDO ログの最新のシーケンス番号がプライマリ データベースの最新のシーケンス番号と一致していることを確認します。
sqlplus / as sysdba
SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Received" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Applied" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# AND VAL.APPLIED IN ('YES','IN-MEMORY') GROUP BY THREAD# ORDER BY 1;
次の出力には、スタンバイ データベースに対して実行されたクエリと一致するシーケンス番号が含まれています。
THREAD# Last Standby Seq Received ---------- ------------------------- 1 40 2 33
THREAD# Last Standby Seq Applied ---------- ------------------------ 1 40 2 33
マネージド リカバリ プロセスのステータスが
APPLYING_LOG
であることを確認します。SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE '%MRP%';
次の例は、ステータスが
APPLYING_LOG
で、名前がMRP0
の単一マネージド復旧プロセスを示しています。PROCESS STATUS --------- ------------ MRP0 APPLYING_LOG
スタンバイ データベースで、トランスポートをチェックするか、ラグを適用します。
COLUMN NAME FORMAT a20 COLUMN VALUE FORMAT a30 SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME LIKE '%lag%';
次の出力では、スタンバイ データベースでのラグがありません。
NAME VALUE -------------------- ------------------------------ transport lag +00 00:00:00 apply lag +00 00:00:00
ラグがある場合は、Oracle の Data Guard トラブルシューティングに関するドキュメントをご覧ください。
Data Guard ブローカーを使用したデータベースのスイッチオーバー
スイッチオーバーとは、プライマリ データベースとスタンバイ データベースの間で役割を切り替えるプロセスです。スイッチオーバー プロセスの間、データベース クライアントはプライマリ データベースから切断されます。アプリケーションがデータベースに接続する方法によっては、スイッチオーバーによってアプリケーションのトラフィックが中断される場合があります。Oracle には、ロールの移行中にアプリケーションの継続性を維持するためのオプションが用意されています。次の手順でデータベースの切り替えを行うことで、障害復旧の準備状況をテストできます。
プライマリ データベースをホストする Bare Metal Solution サーバーにログインします。
Data Guard コマンドライン インターフェースを起動し、スタンバイ データベースに接続します。
dgmgrl
CONNECT SYS@DBDG_SITE2
パスワードの入力を求められたら、データベースの SYS リモート ログイン パスワードを入力します。
データベースがスイッチオーバーの準備を完了していることを確認します。
VALIDATE DATABASE DBDG_SITE2;
成功すると、データベースのスイッチオーバーの準備ができたことが報告されます。
成功したら、switchover コマンドを実行します。
SWITCHOVER TO DBDG_SITE2;
コマンドが成功すると、
DBDG_SITE2
が構成内の新しいプライマリ データベースになったことを通知するメッセージが表示されます。次のコマンドを実行して、データベースの役割が交換されたことを確認します。
SHOW CONFIGURATION;
次のコマンドを実行して元の構成に戻ります。
SWITCHOVER TO DBDG_SITE1;
Data Guard ブローカーを使用したデータベースのフェイルオーバー
フェイルオーバーは役割の移行で、サイトを完全に停止することでスタンバイ データベースの 1 つがプライマリの役割に移行します。スタンバイ データベースが復旧するまで、REDO はスタンバイ データベースに送信されません。
フェイルオーバーを実行する
スタンバイ データベースをホストする最初の Bare Metal Solution サーバーにログインします。
Data Guard コマンドライン インターフェースに接続し、プライマリ データベースをスタンバイ データベースにフェイルオーバーします。
dgmgrl
CONNECT SYS@DBDG_SITE2
パスワードの入力を求められたら、データベースの SYS リモート ログイン パスワードを入力します。
フェイルオーバーを開始します。
FAILOVER TO DBDG_SITE2
show configuration;
を実行して、DBDG_SITE2
がプライマリ データベースになり、DBDG_SITE1
を復元する必要があることを確認します。
プライマリ データベースを復元する
flashback database
が有効な場合、フェイルオーバー後にプライマリ データベースを復元できます。障害が発生したプライマリ データベースを復元するには:
プライマリ データベースをホストする最初の Bare Metal Solution サーバーにログインします。
Data Guard コマンドライン インターフェースに接続し、プライマリ データベースにログインしてから、障害が発生したデータベースを復元します。
dgmgrl
CONNECT SYS@DBDG_SITE2
パスワードの入力を求められたら、データベースの SYS リモート ログイン パスワードを入力します。
データベースを復元します。
REINSTATE DATABASE DBDG_SITE1; EXIT;
次のステップ
Compute Engine で Data Guard オブザーバーを設定します。