GoldenGateOGG-01163 问题处理
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 问题处理相关推荐
- 《强化学习周刊》第33期:UdeM | 基于不确定性估计的样本高效深度强化学习
No.33 智源社区 强化学习组 强 化 学 习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...
- ACE_Reactor(二)ACE_Dev_Poll_Reactor
ACE_Reactor一些重要的细节 看下具体ACE_Dev_Poll_Reactor的实现,如何将一个处理集和handle关联起来,代码如下: int ACE_Dev_Poll_Reactor :: ...
- 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 ...
- arcgis10.2以上版本转换测量队节点所在TXT为所需格式(arctoolbox-samples-features-creat featrure from text file所需要的面格式)
#相关文件下载地址 链接:https://share.weiyun.com/54IAWzQ #qq:1874445373 #authon : 'yangyong' #time : 2018/06/20 ...
- 支持向量机(SVM)MATLAB 实例讲解,及选择训练方式使误差率尽可能减为0
今天看了有关支持向量机(Support vector machine,简称SVM )用来分类的内容.通过学习算法,SVM可以自动找出那些对分类有用有较好区分能力的支持向量,由此构造出的分类器可以最大化 ...
- 截至20161210香港主板股票代码和名称
香港主板 00001 长和 香港主板 00002 中电控股 香港主板 00003 香港中华煤气 香港主板 00004 九龙仓集团 香港主板 00005 汇丰控股 香港主板 00006 电能实业 香港主 ...
- SVG实现超酷素描动画
详细的SVG教程看这里:http://www.ziqiangxuetang.com/svg/svg-tutorial.html SVG实现素描动画原理: [html] view plaincopy & ...
- echarts 中国地图点击进入相应省份 海南省里的南海诸岛换成诸岛简图
DataV.GeoAtlas地理小工具系列 在这里下载了中国以及各省的json文件,但是下面海南那块国家海岸线里有很多岛我不想要,明明已经有个南海诸岛的框了,在那占位置不好看,这时就要改变下Chin ...
- MySQL错误(报错)一览表(对照表)
00101 属于其他进程的专用标志. 00102 标志已经设置,无法关闭. 00103 无法再次设置该标志. 00104 中断时无法请求专用标志. 00105 此标志先前的所有权已终止. ...
- 计算机仿真作业题目,计算机仿真技术作业一
<计算机仿真技术作业一>由会员分享,可在线阅读,更多相关<计算机仿真技术作业一(14页珍藏版)>请在人人文库网上搜索. 1.11292058 杨苑 电气1110计算机仿真技术作 ...
最新文章
- sql server 常见约束
- 举重若轻的人人车移动端数据平台
- c++中stack容器
- 月薪3K与月薪3万的程序员,距离是怎么拉开的?
- ftp网页服务器不允许匿名登录,我的FTP服务器不让匿名登陆,怎么办?
- EXTjs+SpringMVC+Mybatis实现照片的上传,下载,查看关键技术整理
- 三个箭头循环标志_摩托车6年免检,应该如何通过APP申请免检检验标志?
- 图解Python编程:从入门到精通系列教程(附全套速查表)
- python源码剖析类机制_python源码剖析
- 用计算机建立电子表格,求计算机作业电子表格演示文稿。
- QQ邮箱如何快速批量删除所有的垃圾邮件
- banner生成图像的网站有哪些?
- 国徽FLASH SM25QH256M烧录问题总结
- 计算机应用基础0006 19春在线作业1,川大《计算机应用基础0006》20春在线作业1 -0001...
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理)。——C语言
- python 矩阵类型转换_Python 矩阵转置的几种方法小结
- GoLang之使用sync.pool和sync.cond
- useradd 无法打开 /etc/passwd
- 服务器操作系统方案,服务器操作系统解决方案
- 焦虑,不知所措,努力应对,坦然,双非本硕求职算法的故事