前两天进行了一次在线重定义,修改表某字段的长度。业务表,7000W左右的数据量,修改列为复合主键的其中一列,varchar2类型。
Oracle 主备两台,读写分离。使用OGG进行同步。
背景:
在主库进行在线重定义,主库顺利完成,但是在备库报出异常,异常信息如下:
OCI Error ORA-12096: error in materialized view log on "JTINFO"."TBL_USERID" ORA-12899: value too large for column "JTINFO"."MLOG$_TBL_USERID"."USID_IMEI" (actual: 36, maximum: 32) (status = 12096), SQL <INSERT /*+ APPEND */ INTO "JTINFO"."TBL_USERID" ("USID_UID","USID_IMEI","USID_IMSI","USID_FLAG","USID_ACTIVE") VALUES (:a0,:a1,:a2,:a3,:a4)> Operation failed at seqno 39201 rba 3725780 Discarding record on action DISCARD on error 12096 Problem replicating JTINFO.TBL_USERID to JTINFO.TBL_USERID Mapping problem with insert record (target format)... * USID_UID = 8087585692 USID_IMEI = 1B200F09-11A1-4C24-A952-65475EBE116D USID_IMSI = 000000000000000 USID_FLAG = 0 USID_ACTIVE = 1
于是,查找到表MLOG$_TBL_USERID,增加此列长度,然后停止报错,问题解决,网上查看有人说为Oracle BUG,目前还未进行查证。
为什么会多出来一张表MLOG$_TBL_USERID?
作者:zhangbiaobiaobiao 发表于2013-12-29 2:26:25 原文链接
阅读:129 评论:0 查看评论