ITPub博客

首页 > 数据库 > Oracle > OGG 跳过当前事务的几种方法

OGG 跳过当前事务的几种方法

原创 Oracle 作者:梦夕林1992 时间:2024-04-02 17:03:57 0 删除 编辑

在OGG的挖掘,传输以及应用进程中,都可以做跳过事务的操作,但是这个动作是存在风险的,我们需要明确知道该操作同时也会带来数据丢失。这里我们简单讲下挖掘进程和应用进程中跳过事务的操作方法。


一、挖掘进程跳过当前日志

出现报错:Last alternative log tried /hzmc/oradata/archlog/1_3_896105617.dbf

OGG挖掘的时候 发现找不到该日志,归档已经被删除,且没有归档备份等,这种情况往往只能重新初始化以保证数据的一致性,但是若客户接受一个归档丢失,或者说选择先同步后续通过比对做修复。此时我们可以选择跳过该归档。

跳过该日志,从其他的日志开始挖掘

alter extract extseqno xx extrba 0 (具体日志号根据实际情况修改)


二、应用进程跳过当前事务

简单的:start rep1 skiptransaction (跳过当前事务)


或者下面的方法:

在某些情况下,目标端的有些事务是可以做跳过的,比如目标端去删除一条记录,但是该记录在目标端已经不存在(这里暂不分析为何数据会不一致),这种情况下,应用进程是可以做跳过的,我们可以通过分析ggserr.log , DISCARDFILE , REPLICAT REPORT ,以及借助 Logdump 等工具去定位错误。

1.确认进程当前的所在列队文件及RBA:

GGSCI (zmy) 46> info rep_sm

REPLICAT RADS_1 Last Started 2018-12-08 12:29 Status ABENDED

Checkpoint Lag 01:23:33(updated 00:01:20 ago)

Log Read Checkpoint File ./dirdat/sm000009

                    2018-12-08 11:05:51.970013 RBA 72698725


2.由于在列队中相邻两个事务的 RBA 并不是简单的 +1 关系,所以需要借助 logdump 工具来 定位下个事务的RBA。

Logdump 10 >open ./dirdat/sm000009

Logdump 11 >pos 72698725

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

Logdump 12 >n

2018/12/08 11:05:52.970.013 DDLOP Len 1221 RBA 72698725

Name:

After Image: Partition 0 G s

2c43 353d 2735 3730 3727 2c2c 4237 3d27 3537 3037 | ,C5='5707',,B7='5707

272c 2c42 323d 2735 3631 3330 3027 2c2c 4233 3d27 | ',,B2='561300',,B3='

4f47 4727 2c2c 4234 3d27 4442 4d53 5f54 4142 434f | OGG',,B4='DBMS_TABCO

4d50 5f54 454d 505f 554e 434d 5027 2c2c 4331 323d | MP_TEMP_UNCMP',,C12=

2727 2c2c 4331 333d 2727 2c2c 4235 3d27 5441 424c | '',,C13='',,B5='TABL

4527 2c2c 4236 3d27 4452 4f50 272c 2c42 383d 274f | E',,B6='DROP',,B8='O

4747 2e47 4753 5f44 444c 5f48 4953 5427 2c2c 4239 | GG.GGS_DDL_HIST',,B9

  查看下一个事务信息:

Logdump 13 >n

2018/12/08 14:05:52.970.013 Insert Len 370 RBA 72700120

Name: test.test1

After Image: Partition 4 G s

0000 0009 0000 0005 7274 7231 3100 0100 0900 0000 | ........rtr11.......

0531 3036 3034 0002 001d 0000 0019 5943 3159 3037 | .10604........YC1Y07

315f 3132 3939 3537 3833 3534 3932 342e 786d 6c00 | 1_1299578354924.xml.

0300 0300 0030 0004 00bf 0000 00bb 6874 7470 3a2f | .....0........http:/

2f64 6174 6167 6174 652e 6368 696e 6162 6f6e 642e | /datagate.chinabond.

636f 6d2e 636e 2f64 6174 6167 6174 652f 6469 7370 | com.cn/datagate/disp

6174 6368 3f66 756e 635f 6964 3d32 3031 3126 7374 | atch?func_id=2011&st

可以看到下一个记录的rba号为 72700120


3.重新指定进程的当前RBA以跳过该事务

GGSCI (sv890n01) 47> alter replicat rep_sm,extrba 72700120


GGSCI (sv890n01) 48> start rep_sm

Sending START request to MANAGER ...




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29956245/viewspace-3011307/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: OGG DDL安装和卸载
请登录后发表评论 登录
全部评论

注册时间:2014-10-13

  • 博文量
    90
  • 访问量
    85391