Oracle Goldengate实际使用过程中经常会出现abend的现象,有时ggserr.log提示的信息又让我们摸不着头脑。

2011-11-01 09:14:28  WARNING OGG-01431  Oracle GoldenGate Delivery for Oracle, rep1.prm:  Aborted grouped transaction on 'XXX.XXX_BONUS_LOG', Mapping error.
2011-11-01 09:14:28  WARNING OGG-01003  Oracle GoldenGate Delivery for Oracle, rep1.prm:  Repositioning to rba 4662627 in seqno 2114.
2011-11-01 09:14:28  WARNING OGG-01151  Oracle GoldenGate Delivery for Oracle, rep1.prm:  Error mapping from XXX.XXX_BONUS_LOG to XXX.XXX_BONUS_LOG.
2011-11-01 09:14:28  WARNING OGG-01003  Oracle GoldenGate Delivery for Oracle, rep1.prm:  Repositioning to rba 4662627 in seqno 2114.
2011-11-01 09:14:28  ERROR   OGG-01296  Oracle GoldenGate Delivery for Oracle, rep1.prm:  Error mapping from XXX.XXX_BONUS_LOG to XXX.XXX_BONUS_LOG.
2011-11-01 09:14:28  ERROR   OGG-01668  Oracle GoldenGate Delivery for Oracle, rep1.prm:  PROCESS ABENDING.

上面的这个错误,如果用logdump去查看,你会发现日志seqno 2114 rba 4662627位置根本就不是XXX.XXX_BONUS_LOG。原因很简单,Goldengate加载的时候默认遵循源端的事务一致性,在这个例子中,seqno 2114 rba 4662627只是事务的起点,而出错的位置在ggserr.log中没有办法定位。这时候就需要用到一些特殊的参数来帮助我们来定位具体的问题原因。

  • SHOWSYNTAX

Use the SHOWSYNTAX parameter to start an interactive session where you can view each Replicat SQL statement before it is applied. By viewing the syntax of SQL statements that failed, you might be able to diagnose the cause of the problem.

  • NODYNSQL

With DYNSQL, the default, Replicat uses dynamic SQL to compile a statement once, and then execute it many times with different bind variables.

  • NOBINARYCHARS

NOBINARYCHARS is an undocumented parameter that causes Oracle GoldenGate to treat binary data as a null-terminated string.

通过这三个参数的结合,在report文件中记录详细的SQL语句,和具体的出错位置,结合logdump和具体的SQL语句,相信很快能够定位出问题的原因。

2011-11-01 09:15:56  WARNING OGG-01431  Aborted grouped transaction on 'XXX.XXX_BONUS_LOG', Mapping error.
2011-11-01 09:15:56  WARNING OGG-01003  Repositioning to rba 4662954 in seqno 2114.
2011-11-01 09:15:56  WARNING OGG-01151  Error mapping from XXX.XXX_BONUS_LOG to XXX.XXX_BONUS_LOG.
2011-11-01 09:15:56  WARNING OGG-01003  Repositioning to rba 4662954 in seqno 2114.

Source Context :
  SourceModule            : [er.main]
  SourceID                : [/scratch/angorant/view_storage/angorant_ogg_12978807_x64/oggcore/OpenSys/src/app/er/rep.c]
  SourceFunction          : [take_rep_err_action]
  SourceLine              : [16134]
  ThreadBacktrace         : [8] elements
                          : [/u01/app/oracle/ggs/replicat(CMessageContext::AddThreadContext()+0x26) [0x5ef8b6]]
                          : [/u01/app/oracle/ggs/replicat(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x7b2) [0x5e6382]]
                          : [/u01/app/oracle/ggs/replicat(_MSG_ERR_MAP_TO_TANDEM_FAILED(CSourceContext*, DBString<777> const&, DBString<777> const&, CMessageFactory::MessageDisposition)+0x9b) [0x5c4bcb]]
                          : [/u01/app/oracle/ggs/replicat [0x81ac2f]]
                          : [/u01/app/oracle/ggs/replicat [0x8f73e2]]
                          : [/u01/app/oracle/ggs/replicat(main+0x84b) [0x50764b]]
                          : [/lib64/tls/libc.so.6(__libc_start_main+0xdb) [0x30f3c1c40b]]
                          : [/u01/app/oracle/ggs/replicat(__gxx_personality_v0+0x1da) [0x4e3c2a]]

2011-11-01 09:15:56  ERROR   OGG-01296  Error mapping from XXX.XXX_BONUS_LOG to XXX.XXX_BONUS_LOG.

可以看到,出错的位置是rba 4662954,具体的trail文件信息如下:

Logdump 195 >n
___________________________________________________________________ 
Hdr-Ind    :     E  (x45)     Partition  :     .  (x04)  
UndoFlag   :     .  (x00)     BeforeAfter:     B  (x42)  
RecLength  :   227  (x00e3)   IO Time    : 2011/10/31 11:18:19.230.994   
IOType     :     3  (x03)     OrigNode   :   255  (xff) 
TransInd   :     .  (x01)     FormatType :     R  (x52) 
SyskeyLen  :     0  (x00)     Incomplete :     .  (x00) 
AuditRBA   :       4602       AuditPos   : 200518188 
Continued  :     N  (x00)     RecCount   :     1  (x01)

2011/10/31 11:18:19.230.994 Delete               Len   227 RBA 4662954 
Name: XXX.XXX_BONUS_LOG 
Before Image:                                             Partition 4   G  m   
 0000 0015 0000 3230 3131 2d31 302d 3331 3a31 303a | ……2011-10-31:10:  
 3537 3a34 3500 0100 0a00 0000 0000 0000 1ca2 1100 | 57:45……………  
 0200 0a00 0000 0000 0000 0000 1b00 0300 0a00 00ff | ………………..  
 ffff ffff fffc e000 0400 0a00 0000 0000 0000 0000 | ………………..  
 0000 0500 0700 0000 034e 4554 0006 000a 0000 0000 | ………NET……..  
 0102 aea6 3a3b 0007 0004 ffff 0000 0008 0014 0000 | ….:;…………..  
 0010 3331 3131 3938 302d bbfd b7d6 bbbb b9ba 0009 | ..3111980-……….  
Column     0 (x0000), Len    21 (x0015)  
 0000 3230 3131 2d31 302d 3331 3a31 303a 3537 3a34 | ..2011-10-31:10:57:45

通过logdump发现这是处于事务中间的一个删除语句出错了,检查发现这张表的该记录确实不存在,因此导致Error mapping错误的发生。但由于这是事务中间的一条记录,我们不能直接跳到故障语句之后,这里还需要借助另外两个参数的帮助。

  • GROUPTRANSOPS

Controls the number of records that are sent to the trail in one batch.

  • MAXTRANSOPS

Divides large source transactions into smaller ones on the target system.

通过这两个参数,可以把源端大的事务拆分成小的事务。为了方便起见,我们设置这两个参数为1。

edit params rep1

grouptransops 1
maxtransops 1

再重启rep1进程,rep1进程在出错位置停下来后,手工跳过有问题的语句。

alter rep1, extseqno 2114, extrba 4663281
start rep1

至此,这个问题得到了解决。当然根治这个问题最好的办法还是全同步数据不一致的表,但在一个比较大的生产环境中重新全同步表还是比较麻烦的,在出错语句不是太多的情况下,这也不失为一种解决办法。而我们这个案例刚好是delete操作,因此可以简单的跳过,如果是update或insert则还需要进一步分析。

ogg replicat 进程 abend 处理相关推荐

  1. 【翻译自mos文章】OGG replicat 进程使用的 TCP port

    OGG replicat 进程使用的 TCP port 来源于: TCP PORT USED BY REPLICAT PROCESSES (文档 ID 1060954.1) 适用于: Oracle G ...

  2. OGG复制进程延迟处理思路与方法

    可能问题分析: 1.源端E进程处于abend状态且长时间未解决,导致pump和Replicat进程均出现延迟 2.源端有大表做批量更新操作(比如对历史数据插入.更新.删除几千万上亿条数据) 3.表没有 ...

  3. Oracle查看ogg延时,OGG复制进程延迟不断增长

    集团某在线系统使用OGG做了同步复制用于二期业务生产使用.有同事过来说复制进程有点异常 -bash-3.2$ ogg Oracle GoldenGate Command Interpreter for ...

  4. oracle更新报错14402,Oracle GoldenGate 系列:Replicat 进程遇 OCI Error ORA-14402 错误解决办法...

    生产环境发票管理库到总局主数据库 Replicat 进程因报如下错误 Abended: 2013-04-25 07:59:50  WARNING OGG-00869  OCI Error ORA-14 ...

  5. GoldenGate 配置extract,replicat进程自启动

    在GoldenGate中主进程是manager进程,使用start mgr启动.可以在mgr进程中添加一些参数用来在启动mgr进程的同时启动extract和replicat进程 GGSCI (gg01 ...

  6. oracle pga 1407,ogg replicat OGG-00869 OCI Error ORA-01407 OGG-01154 SQL error 1407

    replicat进程报错,信息如下:2014-03-15 13:31:29 WARNING OGG-00869 OCI Error ORA-01407: cannot update ("ER ...

  7. oracle ogg启动不了,OGG启动REPLICAT进程遇到OGG-00212错误 | 信春哥,系统稳,闭眼上线不回滚!...

    今天在给客户安装OGG的时候,EXTRACT进程无法启动. GGSCI (ycods1) 4> start EXTBAM Sending START request to MANAGER ... ...

  8. OGG抽取进程异常一例

    1.问题现象 出去进程常常running,但是没有新产生trail文件,lag比较大 GGSCI (xxxdb) 3> info all Program Status Group Lag at ...

  9. extract进程 oracle,ogg extract进程stoped问题

    环境: window2008 R2  64位 数据库:sqlserver 2012 问题:ogg的extract进程总是处于stoped状态,开启不了. 求大神们帮帮忙啊 下面为   配置信息 c:\ ...

最新文章

  1. java 迭代器只遍历了一次的解决方案
  2. DPI — Application Assurance — Overview
  3. 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)--转
  4. 工程师文化播客: 从工程转向管理,访谈Github公司的Phil Haack
  5. 计算机负责指令代码的是,计算机组成原理习题2新版资料.doc
  6. LeetCode(109):有序链表转换二叉搜索树
  7. 【CodeForces - 245C 】Game with Coins (思维,贪心)
  8. 万字长文梳理:从0开始,步入Service Mesh微服务架构的世界
  9. 如何查看服务器gpu性能,ubuntu服务器查看GPU和CPU实时使用情况
  10. js 把对象按照属性名的字母顺序进行排列
  11. queue的常见用法
  12. 论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey
  13. [转]Ogre:Hardwarebuffer
  14. Idea和Eclipse快捷键对比
  15. quora ios_企业家的Quora指南
  16. html5给文字添加拼音,h5 给汉字加拼音 加进度条
  17. 虚拟机安装systemc
  18. Could not chdir to home directory /home/xxx:Permission denied
  19. 桌面上的计算机图片怎么复制,电脑桌面上怎么截图呢??请问如何在电脑屏幕上截屏?...
  20. Day2--正则表达式

热门文章

  1. leetcode-12-整数转罗马数字
  2. vue中使用v-on绑定事件中,获取$event.currentTarget,日志打印为null
  3. OutOFMemoryError
  4. Java并发编程实战 第13章 显式锁
  5. java I/O系统总结
  6. windows下 sbulime text 安装less2css踩的几个坑
  7. Android编译笔记二
  8. 制作ubuntu 18.04 U盘启动盘
  9. rmmod: can't change directory to '/lib/modules': No such file or directory问题解决
  10. 【AWSL】之Linux管理(RPM)程序