フェイルオーバー後に旧プライマリをスタンバイとして回復(REINSTATE)
OracleData Guardコマンド
# 1) Bring the old primary to MOUNT (sqlplus / as sysdba):
# SQL> STARTUP MOUNT;
# (RAC: srvctl start database -db <old_primary_db_unique_name> -startoption mount)
# 2) From DGMGRL connected to the new primary:
dgmgrl sys@<new_primary_db_unique_name>
REINSTATE DATABASE '<old_primary_db_unique_name>';
# 3) Verify:
SHOW CONFIGURATION;
SHOW DATABASE '<old_primary_db_unique_name>';概要
flashback databaseで旧プライマリをフェイルオーバーSCN以前に戻し、フィジカルスタンバイに変換して新プライマリからのREDO受信を開始する。スタンバイを一から再構築する必要はない。
使用する場面
フェイルオーバー後、旧プライマリのサーバー/ストレージに再びアクセスできるようになったときに。FSFOの自動フェイルオーバー後(通常はObserverが自動的にreinstateする)。
注意
フェイルオーバーの前に旧プライマリでフラッシュバックが有効化されており、フラッシュバックログがフェイルオーバーSCNをカバーしている必要がある(db_flashback_retention_target、FRAサイズ)。そうでない場合reinstateは失敗し、RMAN duplicateでスタンバイを再構築する必要がある。フェイルオーバー後に旧プライマリに書き込まれたデータは完全に失われる。