热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

OracleGoldenGate系列:Replicat进程遇OCIErrorORA

生产环境发票管理库到总局主数据库Replicat进程因报如下错误Abended:2013-04-2507:59:50WARNINGOGG-00869OCIErrorORA-14402:updatingpartitionkeycolumnwouldcauseapartitionchange(status14402).UPDATEHX_FP.FP_PZHDXXSETSWJG_DM

生产环境发票管理库到总局主数据库 Replicat 进程因报如下错误 Abended: 2013-04-25 07:59:50 WARNING OGG-00869 OCI Error ORA-14402: updating partition keycolumn would cause a partition change (status = 14402). UPDATEHX_FP.FP_PZHDXX SET SWJG_DM

生产环境发票管理库到总局主数据库 Replicat 进程因报如下错误 Abended:

2013-04-25 07:59:50 WARNING OGG-00869 OCI Error ORA-14402: updating partition keycolumn would cause a partition change (status = 14402). UPDATE"HX_FP"."FP_PZHDXX" SET "SWJG_DM" =:a1,"XGRQ" = :a2,

"SJGSDQ" = :a3 WHERE"HDQCUUID" = :b0.

2013-04-25 07:59:50 WARNING OGG-01004 Aborted grouped transaction on'HX_FP.FP_PZHDXX', Database error 14402 (OCI Error ORA-14402: updatingpartition key column would cause a partition change (statu

s = 14402). UPDATE"HX_FP"."FP_PZHDXX" SET "SWJG_DM" = :a1,"XGRQ"= :a2,"SJGSDQ" = :a3 WHERE "HDQCUUID" = :b0).

2013-04-25 07:59:50 WARNING OGG-01003 Repositioning to rba 355778 in seqno 83.

2013-04-25 07:59:50 WARNING OGG-01154 SQL error 14402 mapping HX_FP.FP_PZHDXX toHX_FP.FP_PZHDXX OCI Error ORA-14402: updating partition key column would causea partition change (status = 14402). U

PDATE"HX_FP"."FP_PZHDXX" SET "SWJG_DM" =:a1,"XGRQ" = :a2,"SJGSDQ" = :a3 WHERE "HDQCUUID"= :b0.

2013-04-25 07:59:50 WARNING OGG-01003 Repositioning to rba 355778 in seqno 83.

Source Context :

SourceModule :[er.errors]

SourceID :[/scratch/aime1/adestore/views/aime1_staxj16/oggcore/OpenSys/src/app/er/errors.cpp]

SourceFunction :[take_rep_err_action(short, int32_t, const char *, extr_ptr_def *,std_rec_hdr_def *, char *, file_def *, bool)]

SourceLine : [623]

2013-04-25 07:59:50 ERROR OGG-01296 Error mapping fromHX_FP.FP_PZHDXX to HX_FP.FP_PZHDXX.

WARNNING OGG-00869根据官方的 Error Reference 中的描述,专指OGG遇到了特定的数据库错误,可以忽略。

OGG-00869: {0}

Cause: The specified database error occurred, but can be ignored.

Action: Contact Oracle Support only if a problem persists.

但在本例中,replicat 进程遇到的数据库错误为OCI ErrorORA-14402: updating partition key column would cause a partition change,显然无法忽略。ORA-14402 错误一般是由于 update 操作更改了分区表的分区键的值触使该行迁移到其他的分区中。而表的 row movement 默认情况下处于禁用状态,从而导致报该错误。

[oracle@prod ~]$ oerr ora 14402

14402, 00000, "updating partition keycolumn would cause a partition change"

// *Cause: An UPDATE statement attempted to change the value of a partition

// key column causing migration of the row to another partition

// *Action: Do not attempt to update apartition key column or make sure that

// the new partition key is within the range containing the old

// partition key.

Replicat 进程报错时正在修改的记录为:

Logdump 7 >pos 355778

Reading forward from RBA 355778

Logdump 8 >n

___________________________________________________________________

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

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

RecLength : 91 (x005b) IO Time : 2013/04/24 20:33:00.010.627

IOType : 15 (x0f) OrigNode : 255 (xff)

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

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

AuditRBA : 950 AuditPos : 915048500

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

2013/04/24 20:33:00.010.627 FieldComp Len 91 RBA 355778

Name: HX_FP.FP_PZHDXX

After Image: Partition 4 G b

0000 0022 0000 4232 3742 3133 35354146 3646 3430 | ..."..B27B1355AF6F40

3945 3839 3145 3142 4238 4144 36383837 4438 000c | 9E891E1BB8AD6887D8..

000d 0000 3135 3030 3931 3030 30303000 1000 1500 | ....15009100000.....

0032 3031 332d 3034 2d32 343a 32303a33 333a 3030 | .2013-04-24:20:33:00

0011 0007 0000 3135 3030 39 | ......15009

Column 0 (x0000), Len 34 (x0022)

Column 12 (x000c), Len 13 (x000d)

Column 16 (x0010), Len 21 (x0015)

Column 17 (x0011), Len 7 (x0007)

执行的 update 语句为:

UPDATE HX_FP.FP_PZHDXX SET SWJG_DM = ‘15009100000’,XGRQ= ‘2013-04-24:20:33:00’,SJGSDQ= ‘15009’ WHERE HDQCUUID = ‘B27B1355AF6F409E891E1BB8AD6887D8’

其中SJGSDQ 正是HX_FP.FP_PZHDXX 表的分区键。

针对这种修改分区表分区键的操作导致的 replicat 进程挂起,metalink 上给出的建议为在应用设计时尽量避免这种操作,启用该表的 row movement便可临时解决这一问题。

SQL> alter table HX_FP.FP_PZHDXX enablerow movement;

Table altered.

GGSCI (bjsczjdbzsj01) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

JAGENT STOPPED

EXTRACT RUNNING EZJTS_TS 00:00:00 00:00:02

EXTRACT RUNNING PZJTS_TS 00:00:00 00:00:03

REPLICAT ABENDED RFP_ZJ3 00:00:00 12:21:37

REPLICAT RUNNING RFX_ZJ3 00:00:00 00:00:07

REPLICAT RUNNING RGZ_ZJ5 00:00:00 00:00:02

REPLICAT RUNNING RNSTS_ZJ 00:00:00 00:00:03

REPLICAT RUNNING RNS_ZJ2 00:00:00 00:00:01

REPLICAT RUNNING RSB_ZJ4 00:00:00 00:00:04

GGSCI (bjsczjdbzsj01) 3> start RFP_ZJ3

Sending START request to MANAGER ...

REPLICAT RFP_ZJ3 starting

GGSCI (bjsczjdbzsj01) 4> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

JAGENT STOPPED

EXTRACT RUNNING EZJTS_TS 00:00:00 00:00:05

EXTRACT RUNNING PZJTS_TS 00:00:00 00:00:06

REPLICAT RUNNING RFP_ZJ3 00:00:00 00:00:00

REPLICAT RUNNING RFX_ZJ3 00:00:00 00:00:00

REPLICAT RUNNING RGZ_ZJ5 00:00:00 00:00:03

REPLICAT RUNNING RNSTS_ZJ 00:00:00 00:00:06

REPLICAT RUNNING RNS_ZJ2 00:00:00 00:00:09

REPLICAT RUNNING RSB_ZJ4 00:00:00 00:00:07


http://blog.csdn.net/xiangsir/article/details/8851677


推荐阅读
author-avatar
crazttitan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有