GoldenGateOGG-01163 问题处理

一、背景

近来计量中心项目管理测试环境 GoldenGate 同步配置针对部分表的同步持续不断地报 OGG-01163 错误,导致涉及部分表同步的所有 Replicat 进程 Abended ,使GoldenGate停止工作。出现该问题的 Table 的结构完全一致,出现问题后,无法正常启动 Replicat 进 程。

二、问题分析

Source 和 Target 数据库版本:11.2.0.3.0

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise EditionRelease11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.3.0 - Production

CORE  11.2.0.3.0      Production

TNS for IBM/AIX RISC System/6000: Version11.2.0.3.0 -Production

NLSRTL Version 11.2.0.3.0 - Production

Source 和 Target 的GoldenGate 版本:

$ ggsci -v

Oracle GoldenGate Command Interpreter forOracle

Version 11.2.1.0.13_0213878881OGGCORE_11.2.1.0.4_PLATFORMS_120323.1345

AIX 5L, ppc, 64bit (optimized), Oracle 11gon Mar 232012 17:01:26

Copyright (C) 1995, 2012, Oracle and/or itsaffiliates.All rights reserved.

实际环境的GoldenGate报错信息如下:

HX_DJ.DJ_DJHZDYLBSZ 表

Using the following key columns for targettableHX_DJ.DJ_DJHZDYLBSZ: LB_DM.

Source Context :

SourceModule            :[ggstd.conv.endian]

SourceID               :[/scratch/aime1/adestore/views/aime1_staxk11/oggcore/OpenSys/src/gglib/ggstd/lecnv.c]

SourceFunction          :[convCompSQL(char *, file_def *,rowlen_t)]

SourceLine              : [591]

2012-10-25 10:05:08 ERROR   OGG-01163 Bad column length (13) specified for columnLRR_DM in tableHX_DJ.DJ_DJHZDYLBSZ, maximum allowable length is 11.

HX_RD.RD_YBNSRFDQGL_RDB 表

Using the following key columns for targettableHX_RD.RD_YBNSRFDQGL_RDB: RDPZUUID.

Source Context :

SourceModule            :[ggstd.conv.endian]

SourceID               :[/scratch/aime1/adestore/views/aime1_staxj16/oggcore/OpenSys/src/gglib/ggstd/lecnv.c]

SourceFunction          :[convCompSQL(char *, file_def *,rowlen_t)]

SourceLine              : [591]

2012-10-26 09:17:06 ERROR   OGG-01163 Bad column length (7) specified for columnSJGSDQ in tableHX_RD.RD_YBNSRFDQGL_RDB, maximum

allowable length is 5.

HX_RD.RD_NSSBFSRDJBGB 表

Using the following key columns for targettableHX_RD.RD_NSSBFSRDJBGB: RDPZUUID.

Source Context :

SourceModule            :[ggstd.conv.endian]

SourceID               :[/scratch/aime1/adestore/views/aime1_staxk11/oggcore/OpenSys/src/gglib/ggstd/lecnv.c]

SourceFunction          :[convCompSQL(char *, file_def *,rowlen_t)]

SourceLine              : [591]

2012-10-26 09:39:35 ERROR   OGG-01163 Bad column length (7) specified for columnSJGSDQ in tableHX_RD.RD_NSSBFSRDJBGB, maximumal

lowable length is 5.

HX_ZSJ.T_XT_HCBXX 表

Using the following key columns for targettableHX_ZSJ.T_XT_HCBXX: TABLE_NAME.

Source Context :

SourceModule            :[ggstd.conv.endian]

SourceID               :[/scratch/aime1/adestore/views/aime1_staxk11/oggcore/OpenSys/src/gglib/ggstd/lecnv.c]

SourceFunction          :[convCompSQL(char *, file_def *,rowlen_t)]

SourceLine              : [591]

2012-10-16 23:49:10 ERROR   OGG-01163 Bad column length (3) specified for columnQUERY_FROM_DB in tableHX_ZSJ.T_XT_HCBXX, maximum allowable length is 1.

全功能环境配置如下:

Source 和 Target 的OS 版本:AIX 6100

# oslevel

6.1.0.0

# oslevel -r

6100-07

Source 和 Target 数据库版本:11.2.0.1.0

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise EditionRelease11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.3.0 - Production

CORE  11.2.0.3.0      Production

TNS for IBM/AIX RISC System/6000: Version11.2.0.3.0 -Production

NLSRTL Version 11.2.0.3.0 - Production

Source 和 Target 的GoldenGate 版本:

$ ggsci -v

Oracle GoldenGate Command Interpreter forOracle

Version 11.2.1.13.3_0213878881OGGCORE_11.2.1.0.4_PLATFORMS_120323.1345

AIX 5L, ppc, 64bit (optimized), Oracle 11gon Mar 232012 17:01:26

Copyright (C) 1995, 2012, Oracle and/or itsaffiliates.All rights reserved.

我们针对上述问题所涉及的表及相应字段分析发现,出现问题的进程的Source和Target两端表的结构完全一致,并不符合 OGG-01163 错误所描述的那样两端的字段长度不一致。

但是这些出现问题的表字段具有一个共性:都是char类型。

SQL> desc hx_zsj.t_xt_hcbxx

Name                Type          Nullable DefaultComments

-------------------- ------------- ------------------------------------------------

TABLE_NAME          VARCHAR2(150)                  。。。。。。。

CACHE_NAME          VARCHAR2(30)  Y                。。。。。。。

DATA_QUERY_SQL      VARCHAR2(750) Y                。。。。。。。。。。。。。。 L

。。。。。。。。。。。。。            VARCHAR2(15)                   。。。。。。。

。。。。。。。。。。。。。       VARCHAR2(750)                  。。。。。。。

DEFAULT_VALUE_COLUMN VARCHAR2(75)                   。。。。。。。

VERSION             VARCHAR2(6)                    。。。。。。。

XY_BJ               VARCHAR2(1)            'Y'     。。。。。。。

GENERATE_JSON       VARCHAR2(1)            'N'     是否生成压缩过的JSON字符串,只有Key/Value缓存系统生效

QUERY_FROM_DB        CHAR2(1)           'N'     是否实时从数据库查询缓存数据

SQL> desc HX_RD.RD_NSSBFSRDJBGB

Name      Type           NullableDefaultComments

----------- -------------- -------- ---------------

RDPZUUID   CHAR(32)                        。。。。。。。

LCSLID    CHAR(32)       Y                。。。。。。。

DJXH      NUMBER(20)                      。。。。。。。

YXQQ      DATE           Y                。。。。。。。

SDDZ      VARCHAR2(150)  Y                。。。。。。。

YZBM      CHAR(6)        Y                。。。。。。。

。。。。。。        DATE           Y                。。。。。。。

。。。。。。        VARCHAR2(3000) Y                。。。。。。。

。。。。。。      CHAR(11)                        。。。。。。。。。。。

。。。。。。        DATE                            。。。。。。。。

XGR_DM    CHAR(11)       Y               。。。。。。。

XGRQ      DATE           Y                。。。。。。。

SJGSRQ    DATE           Y                。。。。。。。日期

YXBZ      CHAR(1)        Y                。。。。。。。

SJZZRQ    DATE           Y                。。。。。。。

SPSDSX_DM CHAR(1)        Y                。。。。。。。

SKJNFS_DM_1 VARCHAR2(20)   Y                。。。。。。。

SPSDFS_DM_1 VARCHAR2(20)   Y                。。。。。。。代码

SBFS      VARCHAR2(60)   Y                申报方式

SJGSDQ      CHAR2(5)               '00000' 数据归属地区

SQL> desc HX_FP.FP_KFYJXX

Name    Type         NullableDefaultComments

--------- ------------ -------- ---------------

FPYJUUID CHAR(32)                      。。。。。。。

SSSWJG_DM CHAR(11)                      。。。。。。。

FPKF_DM CHAR(32)                      。。。。。。。

FPZL_DM VARCHAR2(5)                   。。。。。。。

FPHLBS  NUMBER(10)                    。。。。。。。数

FPYJBS  NUMBER(10)                    。。。。。。。数

LRR_DM  CHAR(11)                     。。。。。。。

LRRQ    DATE                          。。。。。。。

XGR_DM  CHAR(11)     Y                。。。。。。。

XGRQ    DATE         Y                。。。。。。。

FPYJBL  NUMBER(16,6)

SJGSRQ  DATE         Y                数据归属日期

SJGSDQ    CHAR(5)               '00000' 数据归属地区

查阅OracleGoldenGate 官方文档,《ErrotMessage Reference》上面有对该问题的描述:

OGG-01163: Bad column length ({3,number,0})specified for column {1} in table {0},

maximum allowable length is {2,number,0}.

Cause: There was an internal errorconverting trail file data. A buffer overflow

was detected.

Action: Contact Oracle Support.

众所周知,Oracle在处理 char 类型字段时,会对该字段自动补位,但是即便如此,字段长度也不会超出char类型所定义的长度。为了一看究竟是不是如官方文档所说(GoldenGate在转换trail文件数据时发生内部错误,系统检测到buffer溢出),我们利用GoldenGate自带的logdump工具对产生该错误时读取的trail文件进行了分析,

SQL> desc HX_FP.FP_KFYJXX

Name    Type         NullableDefaultComments

--------- ------------ -------- ---------------

FPYJUUID CHAR(32)                      。。。。。。。

SSSWJG_DM CHAR(11)                      。。。。。。。

FPKF_DM CHAR(32)                      。。。。。。。

FPZL_DM VARCHAR2(5)                   。。。。。。。

FPHLBS  NUMBER(10)                    。。。。。。。数

FPYJBS  NUMBER(10)                    。。。。。。。数

LRR_DM  CHAR(11)                     。。。。。。。

LRRQ     DATE                          。。。。。。。

XGR_DM  CHAR(11)     Y                。。。。。。。

XGRQ    DATE         Y                。。。。。。。

FPYJBL  NUMBER(16,6)

SJGSRQ  DATE         Y                数据归属日期

SJGSDQ    CHAR(5)               '00000' 数据归属地区

Trail 文件dump:

通过inforeplicat rep,showch 可以查看所在的trail文件,并可以查看seqno和rba。

Logdump 15 >open ./dirdat/zc000063

Current LogTrail is/home/oracle/ggs/dirdat/zc000063

Logdump 16 >ghdr on

Logdump 17 >detail on

Logdump 18 >detail data

Logdump 19 >usertoken on

Logdump 20 >pos 653304

Reading forward from RBA 653304

Logdump 21 >n

___________________________________________________________________

Hdr-Ind   :     E (x45)     Partition :    .  (x04)

UndoFlag  :     . (x00)     BeforeAfter:     A (x41)

RecLength :   270 (x010e)   IO Time   : 2012/10/16 11:36:51.721.932

IOType    :     5 (x05)     OrigNode  :  255  (xff)

TransInd  :     . (x03)     FormatType :     R (x52)

SyskeyLen :     0 (x00)     Incomplete :     . (x00)

AuditRBA  :        500       AuditPos   : 18925072

Continued :     N (x00)     RecCount  :    1  (x01)

2012/10/16 11:36:51.721.932 Insert               Len   270 RBA 653304

Name: HX_FP.FP_KFYJXX

After Image:                                           Partition 4   G  s

00000022 0000 64623834 3732 6166 6563 3137 3432 | ..."..db8472afec1742

38373862 33623063 6562 6366 3361 3538 3263 0001 | 878b3b0cebcf3a582c..

000d0000 31353030 3130 3933 3830 3000 0200 2200 | ....15001093800...".

00316266 32626231 3962 3961 3634 6463 3239 6562 | .1bf2bb19b9a64dc29eb

39346635 65613131 3330 6536 6300 0300 0900 0000 | 94f5ea1130e6c.......

05343230 33360004 000a 0000 0000 0000 0000 0064 | .42036.............d

0005000a 00000000 0000 0000 0005 0006 000d 0000 | ....................

Column    0(x0000), Len    34 (x0022)

00006462 38343732 6166 6563 3137 3432 3837 3862 | ..db8472afec1742878b

33623063 65626366 3361 3538 3263               |3b0cebcf3a582c

Column    1(x0001), Len    13 (x000d)

00003135 30303130 3933 3830 30                 |..15001093800

Column    2(x0002), Len    34 (x0022)

00003162 66326262 3139 6239 6136 3464 6332 3965 | ..1bf2bb19b9a64dc29e

62393466 35656131 3133 3065 3663               |b94f5ea1130e6c

Column    3(x0003), Len     9 (x0009)

00000005 34323033 36                           |....42036

Column    4(x0004), Len    10 (x000a)

00000000 00000000 0064                         |.........d

Column    5(x0005), Len    10 (x000a)

00000000 00000000 0005                         |..........

Column    6(x0006), Len    13 (x000d)

00003135 30303130 3932 3231 30                 |..15001092210

Column    7(x0007), Len    21 (x0015)

00003230 31322d31 302d 3136 3a31 313a 3332 3a33 | ..2012-10-16:11:32:3

31                                              | 1

Column    8(x0008), Len    13 (x000d)

ffff0000 00000000 0000 0000 00                 |.............

Column    9(x0009), Len    21 (x0015)

ffff3139 30302d30 312d 3031 3a30 303a 3030 3a30 | ..1900-01-01:00:00:0

30                                              | 0

Column   10(x000a), Len    10 (x000a)

00000000 00000000 c350                         |.........P

Column   11(x000b), Len    21 (x0015)

ffff3139 30302d30 312d 3031 3a30 303a 3030 3a30 | ..1900-01-01:00:00:0

30                                               | 0

Column   12 (x000c), Len     9 (x0009)

00000005 30303030 30                           |....00000

我们发现实际trail文件中相应字段的长度都要比表定义的长度要长(猜测可能跟Oracle内部机制有关),但是实际发生问题的字段长度要比定义长度长很多(9vs5)。定位问题该问题是由bug导致。考虑通过配置OGG同步不同定义的表来规避此问题。

三、问题解决

在源端用defgen生成定义文件,然后再传到目标端,并在复制进程指定,并去掉assumetargetdefs参数,具体操作步骤如下:

--在源端数据库OGG安装目录下创建配置文件source.prm

$ cd /goldengate

$ vim source.prm

defsfile ./dirdef/source.def,purge

userid ogg, PASSWORD ogg

table username.tablename;

table username.tablename;

···

--生成数据库表的定义文件

$ cd /goldengate

$ ./defgen paramfile source.prm

--使用ftp将./dirdef/source.def上传到目标端./dirdef目录下

--在复制进程中去掉ASSUMETARGETDEFS,加上如下参数:

SOURCEDEFS ./dirdef/source.def

注:抓取进程可以考虑不新增加新的抓取进程,但是应用进程需新增一个,新增加的应用进程需增加参数:HANDLECOLLISIONS(查重功能)。并且启动前须作操作alterreplggg extseqno 37, extrba 1883。(此时的extseqno和extrba为处理失败时的值)

这些值怎么查看呢?

info 进程名称,showch

如有问题请联系    王杰  15314117200

GoldenGateOGG-01163 问题处理相关推荐

  1. 《强化学习周刊》第33期:UdeM | 基于不确定性估计的样本高效深度强化学习

    No.33 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  2. ACE_Reactor(二)ACE_Dev_Poll_Reactor

    ACE_Reactor一些重要的细节 看下具体ACE_Dev_Poll_Reactor的实现,如何将一个处理集和handle关联起来,代码如下: int ACE_Dev_Poll_Reactor :: ...

  3. ERROR OGG-01163 Bad column length (30) specified for column name in table TEST.demo_src, maximum all

    我们经常在生产系统做数据之间的长度不一致的复制,源端的数据长度大于目标端数据长度,所以当OGG复制的时候会报OGG-01163的错误 解决方案如下: REPLICAT RCUP USERID test ...

  4. arcgis10.2以上版本转换测量队节点所在TXT为所需格式(arctoolbox-samples-features-creat featrure from text file所需要的面格式)

    #相关文件下载地址 链接:https://share.weiyun.com/54IAWzQ #qq:1874445373 #authon : 'yangyong' #time : 2018/06/20 ...

  5. 支持向量机(SVM)MATLAB 实例讲解,及选择训练方式使误差率尽可能减为0

    今天看了有关支持向量机(Support vector machine,简称SVM )用来分类的内容.通过学习算法,SVM可以自动找出那些对分类有用有较好区分能力的支持向量,由此构造出的分类器可以最大化 ...

  6. 截至20161210香港主板股票代码和名称

    香港主板 00001 长和 香港主板 00002 中电控股 香港主板 00003 香港中华煤气 香港主板 00004 九龙仓集团 香港主板 00005 汇丰控股 香港主板 00006 电能实业 香港主 ...

  7. SVG实现超酷素描动画

    详细的SVG教程看这里:http://www.ziqiangxuetang.com/svg/svg-tutorial.html SVG实现素描动画原理: [html] view plaincopy & ...

  8. echarts 中国地图点击进入相应省份 海南省里的南海诸岛换成诸岛简图

    DataV.GeoAtlas地理小工具系列  在这里下载了中国以及各省的json文件,但是下面海南那块国家海岸线里有很多岛我不想要,明明已经有个南海诸岛的框了,在那占位置不好看,这时就要改变下Chin ...

  9. MySQL错误(报错)一览表(对照表)

    00101  属于其他进程的专用标志.  00102  标志已经设置,无法关闭. 00103  无法再次设置该标志. 00104  中断时无法请求专用标志. 00105  此标志先前的所有权已终止. ...

  10. 计算机仿真作业题目,计算机仿真技术作业一

    <计算机仿真技术作业一>由会员分享,可在线阅读,更多相关<计算机仿真技术作业一(14页珍藏版)>请在人人文库网上搜索. 1.11292058 杨苑 电气1110计算机仿真技术作 ...

最新文章

  1. sql server 常见约束
  2. 举重若轻的人人车移动端数据平台
  3. c++中stack容器
  4. 月薪3K与月薪3万的程序员,距离是怎么拉开的?
  5. ftp网页服务器不允许匿名登录,我的FTP服务器不让匿名登陆,怎么办?
  6. EXTjs+SpringMVC+Mybatis实现照片的上传,下载,查看关键技术整理
  7. 三个箭头循环标志_摩托车6年免检,应该如何通过APP申请免检检验标志?
  8. 图解Python编程:从入门到精通系列教程(附全套速查表)
  9. python源码剖析类机制_python源码剖析
  10. 用计算机建立电子表格,求计算机作业电子表格演示文稿。
  11. QQ邮箱如何快速批量删除所有的垃圾邮件
  12. banner生成图像的网站有哪些?
  13. 国徽FLASH SM25QH256M烧录问题总结
  14. 计算机应用基础0006 19春在线作业1,川大《计算机应用基础0006》20春在线作业1 -0001...
  15. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理)。——C语言
  16. python 矩阵类型转换_Python 矩阵转置的几种方法小结
  17. GoLang之使用sync.pool和sync.cond
  18. useradd 无法打开 /etc/passwd
  19. 服务器操作系统方案,服务器操作系统解决方案
  20. 焦虑,不知所措,努力应对,坦然,双非本硕求职算法的故事

热门文章

  1. 加密壳的一般脱壳步骤与实例演示
  2. 揭密开心网:创始人无专属办公室月薪9000
  3. GenVisR绘制瀑布图/突变图谱
  4. 如何实现设为首页,加入收藏的功能
  5. 广义状态平均法功率变换器建模分析
  6. 【序列化】UNSAFE_DESERIALIZATION 不安全的反序列化和反序列化漏洞
  7. Android权限列表permission说明,html5向右移动代码
  8. C#联合WINCC之数据通信
  9. 微软正式推出Windows Phone 7 Series
  10. 设计分享|单片机左右来回的流水灯