Oracle 12c备库日志应用延迟,如何检测Recovery与LGWR进程异常?
- 内容介绍
- 文章标签
- 相关推荐
本文共计995个文字,预计阅读时间需要4分钟。
相关专题:
备库没在实时应用日志,90% 是 mrp 没真跑起来,或 lgwr 传输根本没发出去——别只看进程名,得查状态、查路径、查归档缺口。
查 v$managed_standby 确认 MRP 是否真在 APPLYING_LOG
MRP 进程名存在 ≠ 在干活。它可能卡在 WAIT_FOR_LOG 或静默 halt,表面看是“运行中”,实际已停摆。
- 执行
SELECT process, status, sequence# FROM v$managed_standby WHERE process = 'MRP0';,status 必须是APPLYING_LOG才算有效工作;若为WAIT_FOR_LOG,大概率是遇到UNNAMED数据文件(ORA-01111)或控制文件不一致 - 若返回空行,说明 MRP 根本没启动:检查是否执行过
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; - 别信
ps aux | grep mrp—— 进程可能残留但内部已退出,v$managed_standby才是唯一可信来源
查 v$archive_dest_status 判断 LGWR 传输是否卡在主库
主库侧的传输失败,备库连日志影子都收不到。重点不是“有没有配”,而是“配对了没、启用了没、连通了没”。
本文共计995个文字,预计阅读时间需要4分钟。
相关专题:
备库没在实时应用日志,90% 是 mrp 没真跑起来,或 lgwr 传输根本没发出去——别只看进程名,得查状态、查路径、查归档缺口。
查 v$managed_standby 确认 MRP 是否真在 APPLYING_LOG
MRP 进程名存在 ≠ 在干活。它可能卡在 WAIT_FOR_LOG 或静默 halt,表面看是“运行中”,实际已停摆。
- 执行
SELECT process, status, sequence# FROM v$managed_standby WHERE process = 'MRP0';,status 必须是APPLYING_LOG才算有效工作;若为WAIT_FOR_LOG,大概率是遇到UNNAMED数据文件(ORA-01111)或控制文件不一致 - 若返回空行,说明 MRP 根本没启动:检查是否执行过
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; - 别信
ps aux | grep mrp—— 进程可能残留但内部已退出,v$managed_standby才是唯一可信来源
查 v$archive_dest_status 判断 LGWR 传输是否卡在主库
主库侧的传输失败,备库连日志影子都收不到。重点不是“有没有配”,而是“配对了没、启用了没、连通了没”。

