SQLでプライマリ/スタンバイのロールとスイッチオーバー可否を確認
OracleData Guardコマンド
SELECT name, db_unique_name, database_role, open_mode, protection_mode,
switchover_status, force_logging, flashback_on, dataguard_broker
FROM v$database;
-- State of redo destinations and gaps (on the primary):
SELECT dest_id, dest_name, status, type, database_mode,
recovery_mode, gap_status, error
FROM v$archive_dest_status
WHERE status <> 'INACTIVE';
-- Missing archivelog range on the standby:
SELECT thread#, low_sequence#, high_sequence# FROM v$archive_gap;概要
データベースロール、オープンモード、保護モード、switchover_status(TO STANDBY / TO PRIMARY / SESSIONS ACTIVE / NOT ALLOWED)、FORCE LOGGINGとフラッシュバックの状態、REDO転送先のエラーとギャップを表示する。
使用する場面
スイッチオーバー/フェイルオーバー前の事前チェック、新規スタンバイ構築後、Brokerを使用しない環境での基本監視に。
注意
読み取り専用。FORCE_LOGGING=NOの場合、NOLOGGING操作によりスタンバイに破損ブロックが残る。Data GuardのプライマリではALTER DATABASE FORCE LOGGINGを有効にする必要がある。FLASHBACK_ON=NOの場合、フェイルオーバー後に旧プライマリを回復(reinstate)できず、再構築が必要になる。