资讯专栏INFORMATION COLUMN

ogg之replicat进程关于事务异常的几种处理方法

IT那活儿 / 1967人阅读
ogg之replicat进程关于事务异常的几种处理方法

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!



最近在客户现场,客户表示有使用OGG的一些需求,在此之前也使用OGG11g相比较老的一些版本,其中的原理也是懂一些。官网ogg版本已经更新至19.1、20.3,按照数据库在生产中版本使用的思想,这里选择了使用19.1次新版本进行验证测试。在此次使用的过程中碰到的事务的一些问题,及处理方法进行简单分享。









环境介绍



源端:RHEL 6.8+Oracle 11.2.0.4+OGG 19.1

目标端:RHEL 7.6+Oracle 19.10.0.0+OGG 19.1

同步模式:schema级别DDL同步





异常分析



目标端REPLICAT进程ABENDED,检查日志发现在ORA-00942: table or view does not exist的错误之后REPLICAT进程ABENDED。manager配置文件中已配置autorestart er *,进行重启多次无法解决此问题。

根据错误提示在目标库查询此表已不存在,ogg复制执行sql失败,导致进程ABENDED。

GGSCI (os-app02) 1> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

REPLICAT ABENDED REP1 02:11:40      00:02:25

2021-12-09T14:15:59.955+0000  ERROR OGG-00516  Oracle GoldenGate Delivery for Oracle, rep1.prm: Fatal error
executing DDL replication: error [Error code [942], Error
code [942], Error code [942], Error code [942], ORA-00942:
table or view does not exist], due to explicit ABEND error
handling and filter [include all (default)].

2021-12-09T14:16:05.072+0000  INFO OGG-02333  Oracle
GoldenGate Delivery for Oracle, rep1.prm: Reading
/u01/app/ogg/dirdat/rt000000011, current RBA 2,903, 0 
records, m_file_seqno = 11, m_file_rba = 4,191.

2021-12-09T14:16:05.074+0000  ERROR OGG-01668  Oracle
GoldenGate Delivery for Oracle, rep1.prm: PROCESS ABENDING.






处理方法



方法一:

使用logdump分析trail文件,获取事务NEXT RBA,跳过异常事务。目标库对象已不存在,此sql已不必须,跳过执行sql事务即可恢复。

1)查看复制进程当前处理的文件和处理到的RBA地址:

GGSCI (os-app02) 15> info rep1

REPLICAT   REP1      Last Started 2021-12-09 14:52   Status RUNNING

INTEGRATED

Checkpoint Lag       02:08:38 (updated 00:00:07 ago)

Process ID           22906

Log Read Checkpoint  File /u01/app/ogg/dirdat/rt000000011

2021-12-09 12:44:08.040185  RBA 2903

2)由于RBA不是简单+1的关系,需要使用ogg提供的logdump定位下一个事务的RBA:

[oracle@os-app02 ogg]$ ./logdump

Logdump 18 >open /u01/app/ogg/dirdat/rt000000011 --打开trail文件

Current LogTrail is /u01/app/ogg/dirdat/rt000000011

Logdump 19 >pos 2903   --定位当前RBA

Reading forward from RBA 2903

Logdump 20 >n --NEXT


2021/12/09 12:44:08.040.185 DDLOP Len 1179 RBA 2903

Name:

After Image: Partition x04 G s

2c43 3137 2827 3127 293d 274e 4c53 5f4e 554d 4552 | ,C17(1)=NLS_NUMER

4943 5f43 4841 5241 4354 4552 5327 2c2c 4331 3828 | IC_CHARACTERS
,,C18(

2731 2729 3d27 2e5c 2c27 2c2c 4331 3728 2732 2729 | 1)=.,,,C17(2)

3d27 4e4c 535f 4441 5445 5f46 4f52 4d41 5427 2c2c | =NLS_DATE_FORMAT,,

4331 3828 2732 2729 3d27 4444 2d4d 4f4e 2d52 5227 | C18(2)=DD-MON-RR

2c2c 4331 3728 2733 2729 3d27 4e4c 535f 5449 4d45 | ,,C17(3)=NLS_TIME

5354 414d 505f 464f 524d 4154 272c 2c43 3138 2827 | STAMP_FORMAT
,,C18(


Logdump 21 >n --NEXT


2021/12/09 06:24:49.484.843 Metadata Len 83 RBA 4191

Database Name:

3000 4f00 0100 0200 0100 0200 3a00 0100 0400 ea27 | 0.O.........:......


0000 0200 0400 0100 0000 0300 0200 0000 0400 0800 | ....................

0600 2b30 383a 3030 0500 1400 1000 0000 1414 1414 | ..+08:00............

1414 1414 1414 1414 1114 1414 0300 0700 0500 4150 | ..................AP

5030 31                                           | P01

3)重新指定REPLICAT进程的当前RBA以跳过当前事务,重启REPLICAT进程。

GGSCI (os-app02) 1> alter replicat rep1,extrba 4191

2021-12-09 15:02:19  INFO    OGG-06594  Replicat REP1 has been altered. Even the start up position might be updated, duplicate suppression remains active in next startup. To override duplicate suppression, start REP1 with NOFILTERDUPTRANSACTIONS option.

REPLICAT (Integrated) altered.


GGSCI (os-app02) 2> start rep1

Sending START request to MANAGER ...

REPLICAT REP1 starting


GGSCI (os-app02) 3> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

REPLICAT    RUNNING     REP1        00:00:00      00:00:35

可以看到REPLICAT进程已恢复正常。

方法二:

目标端处理异常,满足sql执行条件。

分析异常sql为drop table xxxx;删除表操作,在目标库创建一对象名为xxxx的空表,成功执行drop即可恢复。本文示例表明emp_222。

1)在目标库对应用户下创建一表,表名与异常sql中表名一致:

15:13:09 SCOTT@app02> create table emp_222(name varchar2(10));

Table created.

Elapsed: 00:00:00.00

2)重启REPLICAT进程:

GGSCI (os-app02) 7> start rep1

Sending START request to MANAGER ...

REPLICAT REP1 starting


GGSCI (os-app02) 8> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

REPLICAT    RUNNING     REP1        00:00:00      00:00:01

REPLICAT进程已恢复正常。

方法三:

OGG提供错误忽略机制,可以根据错误代码跳过错误。

1)异常的错误代码为942,确认所有此类异常均可跳过,在REPLICAT参数文件中添加DDLERROR配置信息:

GGSCI (os-app02) 2> edit params rep1

DDLERROR 942 IGNORE

2)重启REPLICAT进程:

GGSCI (os-app02) 3> start rep1

Sending START request to MANAGER ...

REPLICAT REP1 starting

GGSCI (os-app02) 4> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

REPLICAT    RUNNING     REP1        00:00:00      00:00:03

REPLICAT进程已恢复正常。

注:以上处理方法,可以根据不同的场景结合使用,无论那种方式,均需要以保证数据完整性、一致性为前提。




本文作者:王亚奇

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129616.html

相关文章

  • 【备战春招/秋招系列】美团面经总结基础篇 (附详解答案)

    摘要:不同于个人面经,这份面经具有普适性。我在前面的文章中也提到了应该怎么做自我介绍与项目介绍,详情可以查看这篇文章备战春招秋招系列初出茅庐的程序员该如何准备面试。是建立连接时使用的握手信号。它表示确认发来的数据已经接受无误。 showImg(https://segmentfault.com/img/remote/1460000016972448?w=921&h=532); 该文已加入开源文...

    Leck1e 评论0 收藏0
  • 史上最全阿里 Java 面试题总结

    摘要:以下为大家整理了阿里巴巴史上最全的面试题,涉及大量面试知识点和相关试题。的内存结构,和比例。多线程多线程的几种实现方式,什么是线程安全。点击这里有一套答案版的多线程试题。线上系统突然变得异常缓慢,你如何查找问题。 以下为大家整理了阿里巴巴史上最全的 Java 面试题,涉及大量 Java 面试知识点和相关试题。 JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节。 S...

    winterdawn 评论0 收藏0
  • 我的阿里路+Java面经考点

    摘要:我的是忙碌的一年,从年初备战实习春招,年三十都在死磕源码,三月份经历了阿里五次面试,四月顺利收到实习。因为我心理很清楚,我的目标是阿里。所以在收到阿里之后的那晚,我重新规划了接下来的学习计划,将我的短期目标更新成拿下阿里转正。 我的2017是忙碌的一年,从年初备战实习春招,年三十都在死磕JDK源码,三月份经历了阿里五次面试,四月顺利收到实习offer。然后五月怀着忐忑的心情开始了蚂蚁金...

    姘搁『 评论0 收藏0
  • Java 并发编程系列带你了解多线程

    摘要:的内置锁是一种互斥锁,意味着最多只有一个线程能持有这种锁。使用方式如下使用显示锁之前,解决多线程共享对象访问的机制只有和。后面会陆续的补充并发编程系列的文章。 早期的计算机不包含操作系统,它们从头到尾执行一个程序,这个程序可以访问计算机中的所有资源。在这种情况下,每次都只能运行一个程序,对于昂贵的计算机资源来说是一种严重的浪费。 操作系统出现后,计算机可以运行多个程序,不同的程序在单独...

    Elle 评论0 收藏0
  • Javag工程师成神路(2019正式版)

    摘要:结构型模式适配器模式桥接模式装饰模式组合模式外观模式享元模式代理模式。行为型模式模版方法模式命令模式迭代器模式观察者模式中介者模式备忘录模式解释器模式模式状态模式策略模式职责链模式责任链模式访问者模式。 主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 v1.1 2018-03-12 增加新技术知识、完善知识体系 v2.0 2019-02-19 结构...

    Olivia 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<