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

环境:
   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. 抽取很快恢复正常。

          欢迎指正。


 

你可能感兴趣的:(数据库,etl,大数据)