oracle adg备端alert日志报错日志损坏?

oracle adg备端数据库因文件系统满,导致同步失败,清理空间后,ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE 操作MRP进程起不来,报错ora-00354 ora-00353 ora-00334,如下图所示,感觉像是2200这个日志传输过程中损坏了,因为已经几天了才发现,主端归档...显示全部

oracle adg备端数据库因文件系统满,导致同步失败,清理空间后,
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE 操作MRP进程起不来,报错ora-00354 ora-00353 ora-00334,如下图所示,感觉像是2200这个日志传输过程中损坏了,因为已经几天了才发现,主端归档日志名称都是thread_1_xxxx.xxxx.xxxxxxxx这种,找不到thread_1_2200的归档日志。

想请教这个问题怎么处理,能不能找到这个日志重传覆盖备端日志,然后启动备端日志处理?

微信图片_20170808155427.jpg

微信图片_20170808155427.jpg

收起
参与17

查看其它 2 个回答renou2012的回答

renou2012renou2012数据库管理员KE

这个问题最好帖下trace文件
以下是检查事项和处理办法
1 寻找归档文件
查看下
select * from v$archive_gap;
select inst_id,process,status,thread#,sequence#,block#,blocks from gv$managed_standby;
应该可以确定是否存在gap和当前的日志序号
如果存在序号大于2200文件,而你本地又没有2200文件,你需要从主库copy 2200文件到备库
至于你说的主库名字是thread_1_xxxx.xxxx.xxxxxxxx,这个序号的会可以通过数据库里面的sequence#查出
比如说在主库查询 select * from v$archived_log where sequence#='2200';找到具体路径
或者通过rman 里面的list archivelog sequence 2200;寻找
ps,如果你的主库也没有2200号归档文件,你也可以采用增量复制的方式来跳过该错误,恢复ADG。
2 copy,并且注册归档文件
因为你的以前的2200文件存在错误,需要手动删除文件,然后通过rman自带的CROSSCHECK命令
CROSSCHECK ARCHIVELOG sequence 2200; 然后通过 delete noprompt archivelog sequence 2200;删除系统记录信息
最后从主库拷贝2200文件,或许名字不一定是2200不过这个不影响,
注册 catalog start with '/arch' ;
3 最后执行应用日志命令

金融其它 · 2017-08-08
浏览3074
  • 我看了下备份任务,每天都有一个全备,并且有delete noprompt expired backupset of archivelog all语句 ,我查了下select * from v$archived_log where sequence#='2200';这个日志是8月5号的,name列显示sfzfdg,这是备库名称,rman里没有, 求解哪里还能找到这个日志,或者怎么用增量复制的方式跳过该错误?
    2017-08-08
  • 我刚看了下rman备份日志,里边有备份这个2200日志的记录,我这么怎么从里边把它提取出来?
    2017-08-08
  • [此评论已删除]
    2017-08-09
  • 既然有备份,那就简单了,你需要恢复就行了 命令如下 restore archivelog from logseq 2200until logseq 2201; 执行完之后会有一个文件路径
    2017-08-09

回答者

renou2012
数据库管理员KE

renou2012 最近回答过的问题

回答状态

  • 发布时间:2017-08-08
  • 关注会员:4 人
  • 回答浏览:3074
  • X社区推广