DBAtlas · Атлас эксплуатации баз данных

Проверить роль 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 — его придётся пересоздавать.

Открыть в DBAtlas →

Связанные материалы