OGG在集成模式下抽取进程无法找到日志异常处理

这篇博客分析了Oracle GoldenGate在日志读取过程中遇到错误308的问题,主要是日志文件无法获取。提供了两种处理思路:一是通过找回或恢复日志文件进行注册;二是当日志无法找回时,根据事务状态使用指定时间和SCN或重新注册抽取进程。内容详尽,涉及数据库管理和数据复制技术。
摘要由CSDN通过智能技术生成

环境:
   PRD AIX 11204 RAC
   DOWNSTREAM LINUX 19.7 RAC
   OGG 21.3 MA


错误信息:
LOGMINER: Error 308 encountered, failed to read  logfile /opt/odata/arch3_495_657561562.dbfFri Jun 03 06:35:03 CST 2011

LOGMINER: Error 308 encountered, failed to read  logfile /opt/odata/arch1_116714_657561562.dbfFri Jun 03 06:35:03 CST 2011

LOGMINER: Error 308 encountered, failed to read  logfile /opt/odata/arch3_496_657561562.dbfFri Jun 03 06:35:03 CST 2011

分析:
       从错误信息看是日志无法获取到。


处理思路:
       根据当前的用户环境来决定处理方式。
1.日志可以找回
        如果日志可以从其他环境找回或者可以从备份环境恢复出来。可以将日志拷贝到解析库用如下语句注册
        alter database register or replace logical logfile '/opt/odata/arch3_495_657561562.dbf' for 'OGG$CAP_EB' ; 
       注册以后可以继续,如果还有其他日志用相同的方法。

2.日志无法找回或者可以丢弃日志
        A.抽取进程无正在处理的事务。按照设计,在这种情况下,如果OGG在异常的时候正好结束上一个事务,下一个事务还没有开始,我觉得是可以通过指定时间和SCN来规避的。也就是用如下语句来实现。
ggsci>alert extract eb,begin now
ggsci>alert extract eb,scn  xxxxx
    
        B.抽取进程刚好有事务在处理中。 这个时候日志丢失,用时间或者SCN来指定从新抽取的点会报错,抽取进程依然会报错,找不到日志。 这个时候需要登陆到数据库删除注册信息并重新注册。 没错,你可能已经发现这和重新创建进程的思路一致,不同的是,重新创建步骤更多,你会涉及到命名,同步变更复制进程等操作。重新注册还是用了原来进程的一系列信息。
       ggsci>dblogin  useridalias xxx domain oraclegoldengate
       ggsci>unregister extract eb3 database 
       ggsci> register extract eb3 database  

           这样抽取进程会重新注册到数据库,主库会再次生成数据字典信息写入到日志文件,传递到DOWNSTREAM. 抽取很快恢复正常。

          欢迎指正。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值