Проверить роль primary/standby и готовность к switchover через 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 и flashback, а также ошибки и разрывы (gap) для redo destination.
Когда использовать
Как предварительная проверка перед switchover/failover, после создания нового standby и для базового мониторинга там, где брокер не используется.
Внимание
Только чтение. Если FORCE_LOGGING=NO, операции NOLOGGING оставляют повреждённые блоки на standby; на primary в Data Guard должен быть включён ALTER DATABASE FORCE LOGGING. Если FLASHBACK_ON=NO, старый primary нельзя восстановить через reinstate после failover — его придётся пересоздавать.
Связанные материалы
- Показать конфигурацию брокера Data Guard и состояние баз данных (DGMGRL)
- Измерить задержку transport/apply, скорость apply и процессы Data Guard на standby
- Проверить standby через брокер перед switchover/failover (VALIDATE DATABASE)
- Выполнить плановый switchover (DGMGRL, смена роли без потери данных)
- Выполнить failover после потери primary (DGMGRL)
- Восстановить старый primary как standby после failover (REINSTATE)