DBAtlas · 数据库运维图谱

在备库上测量传输/应用延迟、应用速率和 Data Guard 进程

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;

作用

显示备库落后主库多少(transport lag = 尚未接收的 redo,apply lag = 尚未应用的 redo)、积压何时应用完、应用速率,以及哪个进程正在处理哪个 sequence。

适用场景

用于 RPO/RTO 监控;出现延迟告警时判断问题在网络(传输)还是在备库 I/O/CPU(应用)。

注意

只读。如果 datum_time 很旧(远落后于 time_computed),说明备库没有从主库接收数据,延迟值不可靠。检查是否设置了 DelayMins;有意的延迟看起来就像 apply lag。

在 DBAtlas 中打开 →

相关内容