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

Измерить задержку transport/apply, скорость apply и процессы Data Guard на standby

OracleData Guard

Команда

-- Run on the standby:
SELECT name, value, unit, time_computed, datum_time
FROM   v$dataguard_stats
WHERE  name IN ('transport lag','apply lag','apply finish time','estimated startup time');

-- Redo apply rate (KB/s):
SELECT item, units, sofar, total, TO_CHAR(timestamp,'YYYY-MM-DD HH24:MI:SS') AS ts
FROM   v$recovery_progress
WHERE  item IN ('Active Apply Rate','Average Apply Rate','Maximum Apply Rate','Last Applied Redo')
ORDER  BY start_time DESC, item;

-- Transport and apply processes (12.2+; replaces v$managed_standby):
SELECT name, role, action, thread#, sequence#, block#, delay_mins
FROM   v$dataguard_process
ORDER  BY role;

Что делает

Показывает, насколько standby отстаёт от primary (transport lag = ещё не полученный redo, apply lag = ещё не применённый redo), когда будет применён накопившийся объём, скорость apply и какой процесс над каким sequence работает.

Когда использовать

Для мониторинга RPO/RTO, а при алерте о задержке — чтобы понять, в чём проблема: в сети (transport) или в I/O/CPU standby (apply).

Внимание

Только чтение. Если datum_time старый (сильно отстаёт от time_computed), standby не получает данные от primary и значение задержки недостоверно. Проверьте, не задан ли DelayMins; намеренная задержка выглядит как apply lag.

Открыть в DBAtlas →

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