DG不同步,MRP0进程打不开
问题描述:主库备库之前正常连接,但是昨天磁盘空间满了之后,由于不知什么原因将备库重做日志删了,今天早上发现DG不同步的报警。
当时思路如下:1、通过select thread#,low_sequence#,high_sequence# from v$archive_gap; 查看是否有归档没有传到备库上去,当时查询结果为 no rows selected。表示主备库归档日志都是同步的。
2、然后select sequence#,creator,archived,applied from v$archived_log ;查看备库的日志是不是都有应用到主库上面去。结果如下:
原因就是备库的归档日志没有应用到备库上面。然后我使用alter database recover managed standby database disconnect from session.来启动应用日志。但结果就是没有MRP0进程。
也不能通过alter database recover managed standby database cancel;来取消应用日志,他会报没有恢复备库的错误。
然后通过查看警告日志。
发现是因为重做日志不知道什么时候被删除了。
然后首先通过alter system set standby_file_management='manual';将该参数设为手动的。
通过 ALTER DATABASE RENAME FILE '/u1/oradata/FTNFUSE1/redo01a.log' to '/u1/oradata/FTNFUSE1/redo1a.log';
现将日志重命名,这样可以在指定的路径生成日志文件,再通过alter database clear logfile group 1,
将日志组1的状态改为clearing。
通过select GROUP#,members,BYTES/1024/1024 size_M,STATUS,ARCHIVED from v$log; 查询日志组的状态及大小。
3、这是重做日志建好了,执行alter system set standby_file_management='auto'将参数改为自动的。
然后执行alter database recover managed standby database disconnect from session.打开应用日志,
通过执行 select process,sequence#,status from v$managed_standby;发现MRP0进程还是没有开启。
只有又去看警告日志。
发现其中一行报的是恢复 Media Recovery Log /u2/arch/1_3775_947332915.dbf 出现错误。
我想着主库的这个归档文件应该是没问题的,将主库的归档文件拷贝到备库,然后在通过
alter database recover managed standby database disconnect from session.打开应用日志。
通过执行 select process,sequence#,status from v$managed_standby查看各个进程是不是正常的。结果正常。
图中是将归档日志复制过来之后,注册日志的。因为已经注册过了,所以会报这个错误。但是如果这个日志文件是坏的,那么他就会报其他错误,当时忘记截图了。
select message from v$dataguard_status;也可以查看信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用