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. 愤怒的小鸟【$DP$优化】

    卡常的状压\(DP\),愤怒的小鸟. 其实本来是个很水的状压\(DP\),但因为最后三个点\(n=18\),成功地把我的不可能达到的下界为\(\Omega(2^nn^2)\),紧确的上界为\(O(2^ ...

  2. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  3. oracle 序列 视图 索引 同义词

    序列 Oracle 12C 之后,Oracle 之中提供的是一种手工的自动增长列控制,而这样的控制在 Oracle 之中使用序列(对象)完成. 序列的创建: CREATE SEQUENCE 序列名称 ...

  4. MySql优化分析

    原理 MYSQL逻辑分层 :连接层 服务层 引擎层 存储层 InnoDB(默认) :事务优先 (适合高并发操作:行锁) MyISAM :性能优先 (表锁) SQL优化 编写过程: sql select ...

  5. linux学习第十七天(NFS、AUTOFS文件共享配置,DNS配置)

    一.NFS(网络文件系统,实现linux系统上文件共享) 服务器配置 yum install nfs-utils  (安装NFS软件包) iptables -F  (清空防火墙) service ip ...

  6. 从0开始学golang--2.2--如何去爬园子的数据👉进阶篇,面向对象的单任务版

    执行页main.go-----------------------------------代码

  7. 针对Windows 64位系统中Matlab没有LED Control Activex控件的解决方法

    Win 10 64bits系统中Matlab 64位软件没有LED Control Activex控件,LED ActiveX Control控件位于Gauges Blockset模块中,而Gauge ...

  8. 根据URL地址获取域名

    #coding:utf-8 import urllib #根据URL获取域名 def getdomain(url): proto, rest = urllib.splittype(url) host, ...

  9. 20145209刘一阳《JAVA程序设计》第六周课堂测试

    第六周课堂测试 1.现有以下代码,哪些选项插入到第5行可以通过编译?(BDF) 1.import java.util.*; 2. 3.Class FindStuff { 4.public static ...

  10. jQuery学习- 表单事件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...