ogg由于表分区字段修改引起同步异常后的修复

维护的一套两个单实例做的OGG同步库又出问题了,巡检发现OGG备库rep进程已经异常将近一周了。通过view report repl命令可以查看此进程的支持报告信息(直接在Report files  ./dirrpt看相应的文件也是可以的,或者看错误日志原文件),原因比较直接,是主库修改了同步进程中一个分区表的分区字段,备库日志报错(没有开启DDL同步)。 

找到原因后从备库REP进程配置文件中将出错的分区表去掉,先将备库REP进程启动来同步其它表的数据(在备库REP进程异常的这几天,主库的EXT进程是正常的,rmttrail 在备库也是成功创建的),因此可以正常同步除异常表外的其它数据。之后重新配置一组抽取、应用的进程来单独同步出错的分区表,OGG主备库之间即可正常同步。 

如下简单记录下处理过程:

 1.OGG备库REP进程异常原因的排查:

2017-06-12 09:03:25  WARNING OGG-00869  OCI Error ORA-14402: 更新分区关键字列将导致分区的更改 (status = 14402). UPDATE "ABC"."ABCD" SET "YWH" = :a1,"DJLX" = :a2,"FDCJYJG" = :a3,"DBR" = :a4,"DJSJ" = :a5,"FJ" = :a6,"QDFS" = :a7,.

2017-06-12 09:03:25  WARNING OGG-01004  Aborted grouped transaction on 'SJGX.FDCQ', Database error 14402 (OCI Error ORA-14402: 更新分区关键字列将导致分区的更改 (status = 14402). UPDATE "ABC"."ABCD" SET "YWH" = :a1,"DJLX" = :a2,"FDCJYJG" = :a3,"DBR" = :a4,"DJSJ" = :a5,"FJ" = :a6,"QDFS" = :a7,).

2017-06-12 09:03:25  WARNING OGG-01003  Repositioning to rba 28013790 in seqno 22.

2.编辑备库出错的REP进程参数中的报错分区表

 3.重新配置OGG主、备库的ext/pump/rep进程来对出错分区表的同步

配置的参数及命令如下:
主添加抽取和PUMP进程:
dblogin userid ogg password ogg 
add extract eorc, tranlog,begin now
add exttrail d:\app\ogg\dirdat\ec,extract eorc

eorc进程参数文件:
extract eorc
dynamicresolution
setenv (NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
userid ogg,password ogg
exttrail d:\app\ogg\dirdat\ec
TABLE ABC.ABCD;
table OGG.TEST_C;


add extract pump_sc,exttrailsource d:\app\ogg\dirdat\ec
add rmttrail d:\app\ogg\dirdat\pc,extract pump_sc

pump_sc进程参数文件:
extract pump_sc
dynamicresolution
setenv (NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
userid ogg,password ogg
rmthost 20.12.0.180,mgrport 7809,compress
rmttrail d:\app\ogg\dirdat\pc
table ABC.ABCD;
table OGG.TEST_C;



备库添加进程:
dblogin userid ogg password ogg 
add replicat repc, exttrail .\dirdat\pc, CHECKPOINTTABLE ogg.CHECKPOINT

备库REP进程:
GGSCI (WIN) 40> view params repb
replicat repc
userid ogg,password ogg
setenv (NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
--assumetargetdefs
sourcedefs D:\app\ogg\dirdef\recod.def
discardfile d:\app\ogg\dirrpt\repc.dsc,append,megabytes 1024,purge
DISCARDROLLOVER AT 2:00
dynamicresolution
ALLOWNOOPUPDATES
MAP ABC.ABCD, TARGET ABD.ABCD;
MAP OGG.TEST_C, TARGET OGG.TEST_C;

4.使用expdp/impdp来重新初始化异常分区表的数据

重新导数据来完成初始化同步:
 col current_scn for 99999999999999
select current_scn from v$database;
select to_char(min(start_date),'yyyymmdd hh24:mi:ss') from v$transaction;

SQL> select current_scn from v$database;
  CURRENT_SCN
---------------
 15510590772819

expdp SYSTEM/ORACLE DUMPFILE=OGG0620_%U.dmp DIRECTORY=ogg TABLES=ABC.ABCD flashback_scn=15510590772819
-------导入,先DROP表
DROP TABLE ABD.ABCD;
impdp SYSTEM/ORACLE directory=impdir DUMPFILE=OGG0619_%U.dmp TABLES=ABC.ABCD   remap_schema=ABC:ABD

5.启动备库REP进程并查看主、备库同步状态

启动REP进程:start repc aftercsn 15510590772819


GGSCI (WIN) 63> stats repc ,daily

Sending STATS request to REPLICAT REPC ...

Start of Statistics at 2017-06-20 10:44:04.

Replicating from ABC.ABCD to ABD.ABCD:

*** Daily statistics since 2017-06-20 10:38:31 ***
        Total inserts                                   1871.00
        Total updates                                   3844.00
        Total deletes                                   1856.00
        Total discards                                     0.00
        Total operations                                7571.00

Replicating from OGG.TEST_C to OGG.TEST_C:

*** Daily statistics since 2017-06-20 10:38:31 ***
        Total inserts                                      2.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   2.00

End of Statistics.

GGSCI (WIN) 64> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING
REPLICAT    RUNNING     REPB        00:00:00      00:00:04
REPLICAT    RUNNING     REPC        00:00:00      00:00:06
REPLICAT    RUNNING     REPL        00:00:00      00:00:01
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值