故障:

昨天客户处的ogg rep进程报ora-01403,然后update语句执行失败。

环境是:11.2.0.3.8 rac,asm方式,ogg是11.2.1.0.27

分析:

1.logdump分析目的端的trail file, 发现pkgid='4605'的insert记录不在目的端的trail file中

2.logdump分析源头上的trail file, 发现pkgid='4605'的insert记录不在源头的trail file中

3.至此,问题得到定性:ogg源头的抽取进程漏抽数据。

4.检查ogg源头的抽取进程的rpt文件,

2015-11-23 3:40:16  WARNING OGG-01027  Long Running Transaction: XID 8.2.3069, Items 0, Extract EXTXXX, Redo Thread 2, SCN 17.3644768588 (76659212620), Redo Seq #3153, Redo RBA 434248208.

2015-11-23 3:45:16 WARNING OGG-01027 Long Running Transaction: XID 8.2.3069, Items 0, Extract EXTXXX, Redo Thread 2, SCN 17.3644768588 (76659212620), Redo Seq #3153, Redo RBA 434248208.

2015-11-23 3:50:16 WARNING OGG-01027 Long Running Transaction: XID 8.2.3069, Items 0, Extract EXTXXX, Redo Thread 2, SCN 17.3644768588 (76659212620), Redo Seq #3153, Redo RBA 434248208.

2015-11-23 3:55:16 WARNING OGG-01027 Long Running Transaction: XID 8.2.3069, Items 0, Extract EXTXXX, Redo Thread 2, SCN 17.3644768588 (76659212620), Redo Seq #3153, Redo RBA 434248208.

2015-11-23 4:00:16 WARNING OGG-01027 Long Running Transaction: XID 8.2.3069, Items 0, Extract EXTXXX, Redo Thread 2, SCN 17.3644768588 (76659212620), Redo Seq #3153, Redo RBA 434248208.

2015-11-23 4:02:53 WARNING OGG-00723 Record with class# 78, slt# 8, at seqno 3546, rba 334954000 SCN 18.56689670 (77366100998) has secondary transaction ID that is duplicate of existing open uncommitted transaction.

2015-11-23 4:02:53 WARNING OGG-00715 [Thread #2] Purging transaction (transaction id: 31.8.122377, start time: 2015-11-24 13:57:04, start seqno: 3546, start RBA: 318146576).

2015-11-23 4:02:53 WARNING OGG-00712 Updating I/O checkpoint after purging orphaned transactions on thread 2 with current position (Seq#: 3546, RBA: 334957552).

重点是最后3行的信息(前5行的信息都是长事务的报警),以最后3行的信息去mos搜索,发现如下的mos文章:

GG Extract Report Shows "Purging Transaction", WARNING OGG-00723, OGG-00715, Updating I/O Checkpoint after Purging Orphaned Transactions, Has Secondary Transaction ID That Is Duplicate of Existing Open Uncommitted Transaction (文档 ID 1458472.1)
Classic Extract reports false redo corruption errors when using the DBLOGREADER interface (文档 ID 2014521.1)
Replicat abends due to a record missed by an extract (文档 ID 1990385.1)
GoldenGate Replication On RAC (文档 ID 2079091.1)

如上文章说的是有个ogg的隐含参数TRANLOGOPTIONS _DISABLESTREAMLINEDDBLOGREADER

该隐含参数的作用如下:

This parameter will force DBLOGREADER api check the NAB flag of the redo log before switching, 
thus eliminate the chance of switching to the new log file prematurely.
This parameter has become default from V12.1.2.1.0 and up.

Note: The parameter _DISABLESTREAMLINEDDBLOGREADER is available only from v11.2.1.0.26 onwards

 

于是,就在ogg源头的抽取进程中添加了这个隐含参数(加在了TRANLOGOPTIONS DBLOGREADER下面一行),重启了ogg源头的抽取进程。

继续观察运行情况。