Heim >Datenbank >MySQL-Tutorial >Oracle GoldenGate 系列:Replicat 进程遇 OCI Error ORA

Oracle GoldenGate 系列:Replicat 进程遇 OCI Error ORA

WBOY
WBOYOriginal
2016-06-07 15:02:121669Durchsuche

生产环境发票管理库到总局主数据库 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

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn