【DB笔试面试771】在Oracle中,OGG-00446 错误的处理办法_Oracle

♣          题目         部分

在Oracle中,OGG-00446 Could not find archived log for sequence错误的处理办法是什么?


     




♣          答案部分          


如果面试官问到维护OGG曾经碰到的一次故障处理过程,那么就可以拿这个错误作为案例来说明。OGG-00446主要是归档文件丢失引起,处理办法就是将缺失的归档日志找回来。如果找不到所需归档日志,那么可以按照如下2种办法来处理:

第一种办法是改变抽取进程的时间,但这可能会导致数据不一致,执行方法如下:

1GGSCI (HP-HP) 1> alter extract extl,begin now
     

第二种办法:重新初始化,重新初始化过程如下:

源库查询到当前的SCN:

1SQL> COL CURRENT_SCN FORMAT 999999999999999
2SQL> SELECT CURRENT_SCN FROM V$DATABASE;
3     CURRENT_SCN
4----------------
5  12242466771468
     

基于SCN导出所需要的数据:

1expdp XXX/XXX directory=DMP dumpfile=xpadb_20160125_01.dmp LOGFILE=xpadb_20160125.log  TABLES=BASE_ACTIONPOWER,BASE_BANK  FLASHBACK_SCN=12242466771468
     

目标库导入所需要的数据:

1impdp XXX/XXX DIRECTORY=OGGD DUMPFILE=xpadb_20160125_01.dmp LOGFILE=impdp.xpadb_20160125_01.log REMAP_SCHEMA=xpadb:xpadrpt REMAP_TABLESPACE=xpaddat:xpaddata
     

目标库重新开启应用进程:

1GGSCI (HP-HP) 1> start replicat ggsrep , aftercsn 12242466771468