http://blog.chinaunix.net/uid-26190993-id-3434074.html


   在OGG运行过程中,通常会因为各种各样的原因导致容灾端的REPLICAT进程ABENDED掉,这个时候需要通过分析ggserr.log , DISCARDFILE , REPLICAT REPORT ,以及借助 Logdump 等工具去定位错误。在具体的应用场景下,通过分析排查,有些事务是可以不在容灾端去应用的,下面的例子是今天在生产配置OGG遇到的一个问题。
     由于在同步过程中,从主库传过来的列队中包含创建OGG用户下某张表的一个事务,导致REPLICAT进程ABENDED,经过分析,该表是在主库用于DDL复制的,并不需要在备库应用,确定不会影响数据一致性的前提下决定跳过次事务:

1,定位REPLICAT进程当前事务所在列队文件及RBA:

点击(此处)折叠或打开

  1. GGSCI (sv890n01) 46> info rads_1
  2. REPLICAT RADS_1 Last Started 2012-12-08 16:29 Status ABENDED
  3. Checkpoint Lag 02:23:36 (updated 00:01:38 ago)
  4. Log Read Checkpoint File ./dirdat/pa000002
  5. 2012-12-08 14:05:51.970013 RBA 77698825

2,由于在列队中相邻两个事务的 RBA 并不是简单的 +1 关系,所以下一步需要定位到下个事务的RBA,在这里需要借助 logdump 工具。
   打开列队文件:

点击(此处)折叠或打开

  1. Logdump 10 >open ./dirdat/pa000002
  2. Current LogTrail is /u01/app/oracle/oradata/ogg/dirdat/pa000002

定位到指定的RBA位置:

点击(此处)折叠或打开

  1. Logdump 11 >pos 77698825
  2. Reading forward from RBA 77698825

查看当前事务详细信息,在这里可以看到DDL/DML操作类型,RBA,对象名等一些相关信息:

点击(此处)折叠或打开

  1. Logdump 12 >n
  2. 2012/12/08 14:05:52.970.013 DDLOP Len 1221 RBA 77698825
  3. Name:
  4. After Image: Partition 0 G s
  5. 2c43 353d 2735 3730 3727 2c2c 4237 3d27 3537 3037 | ,C5='5707',,B7='5707
  6. 272c 2c42 323d 2735 3631 3330 3027 2c2c 4233 3d27 | ',,B2='561300',,B3='
  7. 4f47 4727 2c2c 4234 3d27 4442 4d53 5f54 4142 434f | OGG',,B4='DBMS_TABCO
  8. 4d50 5f54 454d 505f 554e 434d 5027 2c2c 4331 323d | MP_TEMP_UNCMP',,C12=
  9. 2727 2c2c 4331 333d 2727 2c2c 4235 3d27 5441 424c | '',,C13='',,B5='TABL
  10. 4527 2c2c 4236 3d27 4452 4f50 272c 2c42 383d 274f | E',,B6='DROP',,B8='O
  11. 4747 2e47 4753 5f44 444c 5f48 4953 5427 2c2c 4239 | GG.GGS_DDL_HIST',,B9

查看下一个事务信息:

点击(此处)折叠或打开

  1. Logdump 13 >n
  2. 2012/12/08 14:05:52.970.013 Insert Len 370 RBA 77700210
  3. Name: DATAGATE.TB_DOWNLOAD_LOG
  4. After Image: Partition 4 G s
  5. 0000 0009 0000 0005 7274 7231 3100 0100 0900 0000 | ........rtr11.......
  6. 0531 3036 3034 0002 001d 0000 0019 5943 3159 3037 | .10604........YC1Y07
  7. 315f 3132 3939 3537 3833 3534 3932 342e 786d 6c00 | 1_1299578354924.xml.
  8. 0300 0300 0030 0004 00bf 0000 00bb 6874 7470 3a2f | .....0........http:/
  9. 2f64 6174 6167 6174 652e 6368 696e 6162 6f6e 642e | /datagate.chinabond.
  10. 636f 6d2e 636e 2f64 6174 6167 6174 652f 6469 7370 | com.cn/datagate/disp
  11. 6174 6368 3f66 756e 635f 6964 3d32 3031 3126 7374 | atch?func_id=2011&st

至此已经定位到下一个事务的RBA。


3,在GGSCI中通过重新指定REPLICAT进程的当前RBA以跳过当前事务

点击(此处)折叠或打开

  1. GGSCI (sv890n01) 47> alter replicat rads_1,extrba 77700210
  2. REPLICAT altered.
  3. GGSCI (sv890n01) 48> start rads_1
  4. Sending START request to MANAGER ...
  5. REPLICAT RADS_1 starting

OGG 跳过事务(转)的更多相关文章

  1. mysql使用GTID跳过事务

    GTID跳过有两种方法,一种是普通的跳过一个事务的方法,另外一个是在基于主库搭建新的slave的时候.一.普通跳过一个事务的方法.通过show slave status\G找到冲突的GTID号.然后执 ...

  2. ogg跳过某个RBA

    1.从库复制进程报如下错误 *************************************************************************              ...

  3. 测试:OGG初始化同步表,源端抽取进程scn<源端事务的start_scn时,这个变化是否会同步到目标库中?

    一.测试目标 疑问,OGG初始化同步表,源端抽取进程开始抽取的scn<源端事务的start_scn时,这个变化是否会同步到目标库中? 二.实验测试 如下进行测试! session 1 SQL&g ...

  4. ogg BR – BOUNDED RECOVERY 测试案例

    首先,我们来看两个OGG同步中可能的问题: l oracle在线日志包含已提交的和未提交的事务,但OGG只会将已提交的事务写入到队列文件.因此,针对未提交的事务,特别是未提交的长事务,OGG会怎样处理 ...

  5. ogg BR – BOUNDED RECOVERY

    BR – BOUNDED RECOVERY 适用于 Extract 进程(仅适用于 Oracle数据库) 使用 BR 参数可以控制 GoldenGate 的 Bounded Recovery (BR) ...

  6. 处理 MySQL 因为 SLAVE 崩溃导致需要手动跳过 GTID 的问题 | 关于 GTID

    今天发生了与之前某篇博客相似的问题,有同学在不同步的 binlog 库中使用语句 database.table 命令对表进行 drop 导致 master 丢弃该表但是从库并未能同步到该操作.并且后续 ...

  7. [置顶] Oracle GoldenGate 常见问题:长事务处理

    长事务的影响 OGG是基于事务级的实时复制工具,也就是说OGG只复制已提交的事务,在遇到事务的commit或rollback之前,它会将每个事务的操作存储在称为cache的托管虚拟内存池中.内存再大也 ...

  8. GoldenGate实时投递数据到大数据平台(5) - Kafka

    Oracle GoldenGate是Oracle公司的实时数据复制软件,支持关系型数据库和多种大数据平台.从GoldenGate 12.2开始,GoldenGate支持直接投递数据到Kafka等平台, ...

  9. [MySQL Reference Manual] 18 复制

    18 复制 18 复制 18.1 复制配置 18.1.1 基于Binary Log的数据库复制配置 18.1.2 配置基于Binary log的复制 18.1.2.1 设置复制master的配置 18 ...

随机推荐

  1. ArrayList实现原理及源码分析之JDK8

    转载 ArrayList源码分析 一.ArrayList介绍 Java 集合框架主要包括两种类型的容器: 一种是集合(Collection),存储一个元素集合. 一种是图(Map),存储键/值对映射. ...

  2. Java反射学习四

    利用反射调用私有方法.访问私有属性 利用反射,首先是Class对象的获取,之后是Method和Field对象的获取. 以Method为例,从文档中可以看到: getMethod()方法返回的是publ ...

  3. springboot不使用内置tomcat启动,用jetty或undertow

    Spring Boot启动程序通常使用Tomcat作为默认的嵌入式服务器.如果需要更改 - 您可以排除Tomcat依赖项并改为包含Jetty或Undertow: jetty配置: <depend ...

  4. PAT乙级1029

    1029 旧键盘 (20 分)   旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...

  5. ZOJ3202-Second-price Auction(根据输入输出判断是队列还是栈)

    A Stack or A Queue? Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu S ...

  6. java面向对象之个人总结

    面向对象有三大特性:继承,封装,多态 1.继承: (1)继承的特点:A,java支持单根继承,不支持多根继承 B,java支持多层继承(继承体系) (2)细节注意:A.子类只能继承父类的非私有成员(成 ...

  7. #leetcode刷题之路36-有效的数独

    判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可.数字 1-9 在每一行只能出现一次.数字 1-9 在每一列只能出现一次.数字 1-9 在每一个以粗实线分隔的 3x ...

  8. hadoop日常维护之问题解决01

    执行hadoop任务遇到的问题: Caused by: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/h ...

  9. 9.22 下午 (document对象)

    document对象 1.找元素:(1)gerElementById()根据ID找   (2)gerElementByClassName()根据Class找,返回数组       (3)gerElem ...

  10. virtualenvwrapper安装和常用指令(mac)

    安装: .安装(要有python环境+pip): * sudo pip install virtualenvwrapper .配置: 执行:vi ~/.bash_profile 在~/.bash_pr ...