1.在目的数据库的相关表中,添加字段。注意字段的数据类型。
2. rep.prm中进行如下的添加
map 'lc0019999.KCCKD2', target gguser.KCCKD2, COLMAP (USEDEFAULTS, ETL_FL_NM = "gg_online", BUSI_DATE = @COLSTAT (NULL), PPN_TMSTAMP = @COLSTAT (NULL), OPERATION_TYPE = @GETENV ("GGHEADER", "OPTYPE") , MODIFY_DATETIME = @GETENV ("GGHEADER", "COMMITTIMESTAMP"));
值得注意的是:OPERATION_TYPE = @GETENV ("GGHEADER", "OPTYPE") 这一个列,在数据库表中,请指定好此列的数据类型,否则会导致gg的replicat 进程启动不了。
比如:
第一,查询rpt 文件得知:
***********************************************************************
** Run Time Messages **
***********************************************************************
Opened trail file /db2/ggv11db2/dirdat/bb000008 at 2011-05-25 16:37:06
MAP resolved (entry LC0019999.KCCKD2):
map LC0019999.KCCKD2, target GGSCHEMA.KCCKD2, COLMAP (USEDEFAULTS, ETL_FL_NM =1, BUSI_DATE = @COLSTAT (NULL), PPN_TMSTAMP = @COLSTAT (NULL), OPERTYPE = @GETENV ("GGHEADER", "OPTYPE") , MODIFY_DATATIME = @GETENV ("GGHEADER", "COMMITTIMESTAMP"));
Using the following default columns with matching names:
KCCKD2_PJLX=KCCKD2_PJLX, KCCKD2_LSBH=KCCKD2_LSBH, KCCKD2_FLBH=KCCKD2_FLBH, KCCKD2_WLBH=KCCKD2_WLBH, KCCKD2_TSKC=KCCKD2_TSKC, KCCKD2_XGDX=KCCKD2_XGDX, KCCKD2_DDLS=KCCKD2_DDLS, KCCKD2_DDFL=KCCKD2_DDFL, KCCKD2_TDLS=KCCKD2_TDLS, KCCKD2_WTLS=KCCKD2_WTLS, KCCKD2_WTFL=KCCKD2_WTFL, KCCKD2_QLLS=KCCKD2_QLLS, KCCKD2_QLFL=KCCKD2_QLFL, KCCKD2_HXSL=KCCKD2_HXSL, KCCKD2_HXFSL1=KCCKD2_HXFSL1, KCCKD2_HXFSL2=KCCKD2_HXFSL2, KCCKD2_HXDJ=KCCKD2_HXDJ, KCCKD2_HXJE=KCCKD2_HXJE, KCCKD2_GZZX=KCCKD2_GZZX, KCCKD2_PCH=KCCKD2_PCH,
KCCKD2_HWBH=KCCKD2_HWBH, KCCKD2_ZYX1=KCCKD2_ZYX1, KCCKD2_ZYX2=KCCKD2_ZYX2, KCCKD2_ZYX3=KCCKD2_ZYX3, KCCKD2_ZYX4=KCCKD2_ZYX4, KCCKD2_ZYX5=KCCKD2_ZYX5, KCCKD2_WLZT=KCCKD2_WLZT, KCCKD2_WLBZ=KCCKD2_WLBZ, KCCKD2_QLSL=KCCKD2_QLSL, KCCKD2_SL=KCCKD2_SL, KCCKD2_DJ=KCCKD2_DJ, KCCKD2_JE=KCCKD2_JE, KCCKD2_FSL1=KCCKD2_FSL1, KCCKD2_FSL2=KCCKD2_FSL2, KCCKD2_TDFL=KCCKD2_TDFL, KCCKD2_XEFL=KCCKD2_XEFL, KCCKD2_BZBH=KCCKD2_BZBH, KCCKD2_GXBH=KCCKD2_GXBH, KCCKD2_ZJZT=KCCKD2_ZJZT, KCCKD2_ZJJL=KCCKD2_ZJJL,
KCCKD2_CLFS=KCCKD2_CLFS, KCCKD2_ZJWC=KCCKD2_ZJWC, KCCKD2_JSSL=KCCKD2_JSSL, KCCKD2_BGDH=KCCKD2_BGDH, KCCKD2_BZ=KCCKD2_BZ, KCCKD2_C1=KCCKD2_C1, KCCKD2_C2=KCCKD2_C2, KCCKD2_C3=KCCKD2_C3, KCCKD2_C4=KCCKD2_C4, KCCKD2_C5=KCCKD2_C5, KCCKD2_U1=KCCKD2_U1, KCCKD2_U2=KCCKD2_U2, KCCKD2_U3=KCCKD2_U3, KCCKD2_FSL3=KCCKD2_FSL3, KCCKD2_FQLSL=KCCKD2_FQLSL, KCCKD2_CXESL=KCCKD2_CXESL, KCCKD2_CBBZ=KCCKD2_CBBZ, KCCKD2_THDZSL=KCCKD2_THDZSL, KCCKD2_THDJCSL=KCCKD2_THDJCSL, KCCKD2_SCSQLS=KCCKD2_SCSQLS, KCCKD2_SCSQFL=KCCKD2_SCSQFL,
KCCKD2_SCDDLS=KCCKD2_SCDDLS
Using the following key columns for target table GGSCHEMA.KCCKD2: KCCKD2_PJLX, KCCKD2_LSBH, KCCKD2_FLBH, KCCKD2_WLBH, KCCKD2_TSKC, KCCKD2_XGDX, KCCKD2_DDLS, KCCKD2_DDFL, KCCKD2_TDLS, KCCKD2_WTLS, KCCKD2_WTFL, KCCKD2_QLLS, KCCKD2_QLFL, KCCKD2_HXSL, KCCKD2_HXFSL1, KCCKD2_HXFSL2, KCCKD2_HXDJ, KCCKD2_HXJE, KCCKD2_GZZX, KCCKD2_PCH, KCCKD2_HWBH, KCCKD2_ZYX1, KCCKD2_ZYX2, KCCKD2_ZYX3, KCCKD2_ZYX4, KCCKD2_ZYX5, KCCKD2_WLZT, KCCKD2_WLBZ, KCCKD2_QLSL, KCCKD2_SL, KCCKD2_DJ, KCCKD2_JE, KCCKD2_FSL1, KCCKD2_FSL2, KCCKD2_TDFL, KCCKD2_XEFL, KCCKD2_BZBH, KCCKD2_GXBH, KCCKD2_ZJZT, KCCKD2_ZJJL, KCCKD2_CLFS, KCCKD2_ZJWC, KCCKD2_JSSL, KCCKD2_BGDH, KCCKD2_BZ, KCCKD2_C1, KCCKD2_C2, KCCKD2_C3, KCCKD2_C4, KCCKD2_C5, KCCKD2_U1, KCCKD2_U2, KCCKD2_U3, KCCKD2_FSL3, KCCKD2_FQLSL, KCCKD2_CXESL, KCCKD2_CBBZ, KCCKD2_THDZSL, KCCKD2_THDJCSL, KCCKD2_SCSQLS, KCCKD2_SCSQFL, KCCKD2_SCDDLS, ETL_FL_NM, BUSI_DATE, PPN_TMSTAMP, OPERTYPE, MODIFY_DATATIME.
2011-05-25 16:37:06 WARNING OGG-01431 Aborted grouped transaction on 'GGSCHEMA.KCCKD2', Mapping error.
2011-05-25 16:37:06 WARNING OGG-01003 Repositioning to rba 3842 in seqno 8.
2011-05-25 16:37:06 WARNING OGG-01151 Error mapping from LC0019999.KCCKD2 to GGSCHEMA.KCCKD2.
2011-05-25 16:37:06 WARNING OGG-01003 Repositioning to rba 3842 in seqno 8.
Source Context :
SourceModule : [er.main]
SourceID : [/mnt/ecloud/workspace/Build_OpenSys_r11.1.1.0.0_078_[37283]/perforce/src/app/er/rep.c]
SourceFunction : [take_rep_err_action]
SourceLine : [15780]
ThreadBacktrace : [8] elements
: [/db2/ggv11db2/replicat(CMessageContext::AddThreadContext()+0x26) [0x70a036]]
: [/db2/ggv11db2/replicat(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x7b2) [0x700ad2]]
: [/db2/ggv11db2/replicat(_MSG_ERR_MAP_TO_TANDEM_FAILED(CSourceContext*, DBString<777> const&, DBString<777> const&, CMessageFactory::MessageDisposition)+0x9b) [0x6ac89b]]
: [/db2/ggv11db2/replicat [0x550e93]]
: [/db2/ggv11db2/replicat [0x55a20a]]
: [/db2/ggv11db2/replicat(main+0xe9c) [0x55bedc]]
: [/lib64/libc.so.6(__libc_start_main+0xf4) [0x389281d974]]
: [/db2/ggv11db2/replicat(__gxx_personality_v0+0x19a) [0x4ce81a]]
2011-05-25 16:37:06 ERROR OGG-01296 Error mapping from LC0019999.KCCKD2 to GGSCHEMA.KCCKD2.
第二:查询discard文件得知:
Oracle GoldenGate Delivery for DB2 process started, group MSS discard file opened: 2011-05-25 16:30:15
Mapping error to target column: OPERATION_TYPE
Mapping error to target column: OPERATION_TYPE
Current time: 2011-05-25 16:30:16
Discarded record from action ABEND on error 0
Aborting transaction on /db2/ggv11db2/dirdat/bb beginning at seqno 8 rba 3842
error at seqno 8 rba 3842
Problem replicating LC0019999.KCCKD2 to GGSCHEMA.KCCKD2
由于给 OPERATION_TYPE列指定了非字符型的数据类型,导致gg在map时报错,进而导致replicat启动失败。
注意:在本例子之前,源端lc0019999.kcckd2 和目的端的gguser.kcckd2 的表结构是一致的,同步是正常运行的。
本例子是在目的端的表中,加入了几个标识列。
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/161195/viewspace-1050386/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/161195/viewspace-1050386/