结论与修复教程:ORA-16770错误表示物理备库启动时MRP(Media Recovery Process)重做应用进程未运行。快速修复步骤:1. 在主库检查Data Guard状态:DGMGRL> show configuration; 2. 登录备库SQL> alter database recover managed standby database cancel; 3. 检查并启动MRP:SQL> alter database recover managed standby database disconnect from session; 4. 验证日志应用:SQL> select process, status, thread#, sequence# from v$managed_standby; 确保APPLYING_LOG状态正常。远程处理:使用DGMGRL从主库直接控制备库,show database 'standby_db'; edit database 'standby_db' set state='APPLY-ON';
Oracle官方文档片段
ORA-16770: The redo apply service is not running. Cause: The redo apply service was not running on the standby database. The broker detected that the apply service was no longer running. Action: Start the redo apply service on the standby database. Check the broker log for more details.
CSDN博客原文
现象:启动物理备库时报告ORA-16770: The redo apply service is not running。解决:在备库执行select process, status from v$managed_standby; 如果没有APPLY进程,则alter database recover managed standby database using current logfile disconnect; 或者使用DG配置DGMGRL> edit database 'prod_dr' set state = 'APPLY-ON';
Oracle社区论坛帖子
问题:DataGuard物理备库open resetlogs后启动应用报ORA-16770。回答:先cancel recovery,然后startup mount,之后alter database recover managed standby database disconnect from session; 确认v$managed_standby有APPLYING_LOG进程正常。
IT技术博客
故障描述:主库正常,备库启动时报错ORA-16770,重做应用未运行。排查:备库alert.log查看MRP进程异常退出。修复:SQL> shutdown immediate; startup mount; alter database recover managed standby database parallel 4 disconnect; 重启Data Guard Broker。
数据库运维经验分享
远程处理指南:无需登录备库服务器,从主库DGMGRL连接:connect sys/password@primary;show database verbose 'standby'; 如果state为APPLY-OFF,则edit database 'standby' set state='APPLY-ON'; validate database 'standby'; 监控progress:select name, value from v$dataguard_stats where name like '%apply%';
Stack Overflow类似问题
Error: ORA-16770 when starting standby. Solution: On standby: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; Then: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; Check: SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;
FAQ:
Q: ORA-16770错误常见原因是什么?
A: 通常是MRP进程异常停止、备库mount状态异常或Broker配置问题。
Q: 如何远程修复无需登录备库?
A: 使用DGMGRL从主库执行edit database 'standby' set state='APPLY-ON';
Q: 修复后如何验证?
A: 查询v$managed_standby看APPLYING_LOG进程,检查v$dataguard_stats应用进度。
Q: 物理备库open read only后还会报错吗?
A: 会,先cancel recovery,open read only,然后再启动apply。