热门标签 | 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


推荐阅读
  • 本文详细介绍了如何使用libpq库与PostgreSQL后端建立连接。通过探讨PQconnectdb()函数的工作原理及其在实际应用中的使用方法,帮助读者理解并掌握建立高效、稳定的数据库连接的关键步骤。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
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社区 版权所有