修复ogg source端意外宕机造成的数据不同步

时间:2021-08-23 17:19:04

修复ogg source端意外宕机造成的数据不同步
分类: Oracle2016-04-28 11:50:40
原文地址:修复ogg source端意外宕机造成的数据不同步 作者:十字螺丝钉

ogg source端意外宕机后(13:00宕机),引起ogg不能同步(source和target端数据不同步)。

处理办法如下:

一、source端
1.extract服务:
extract服务状态为:abended

解决办法:
alter extract extract_name ETROLLOVER

--指定抽取进程extract_name从13:00重新抽取数据
alter extract extract_name,tranlog,begin 2013-09-13 13:00

--启动抽取进程
start extract_name

info all命令确认状态正常

2.投递进程pump启动不起来,处理办法
source端:
根据view params PUMP_P1,找到RMTTRAIL的路径及名字,以及target端的ip地址
-----------
EXTRACT PUMP_T1
USERID ogg@xxxx,PASSWORD xxxxxx
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
RMTHOST 10.x.xx.xx, MGRPORT 8050
RMTTRAIL ./dirdat/m1
PASSTHRU
------------

然后去/app/oracle/ggs/dirdat目录,
cd /app/oracle/ggs/dirdat
ll m1* -t

找出最新的ml(m1是前缀名),取出文件号10509
[oracle@xxxx dirdat]$ ll m1* -t
-rw-rw-rw- 1 oracle oinstall 27957531 Sep 13 16:19 m1010509
-rw-rw-rw- 1 oracle oinstall 5887641 Sep 13 14:56 m1010507
-rw-rw-rw- 1 oracle oinstall 9170994 Sep 13 14:54 m1010508

指定投递进程投递的文件号,这里是10509
alter extract PUMP_T1 ETROLLOVER
alter PUMP_T1 extseqno 10509,extrba 0

启动投递进程
start PUMP_P1

二、target端:
根据source端的投递进程配置文件中的ip,登陆到target端

通过info * 命令找出问题replicat进程,如下面的REP_DS进程就有问题,
它的Log Read Checkpoint时间明显慢于系统时间;且trail文件名字和
source端一致,都是ml前缀,说明文件replicat进程就是REP_DS.

GGSCI (c3db0215) 9> info REP_DS
REPLICAT REP_DS Last Started 2013-09-13 15:28 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Log Read Checkpoint File ./dirdat/m1000752 <<<--------------------trail文件名前缀与source端相同
2013-09-13 13:01:49.999909 RBA 1106516 <<<--------------------时间明显慢于系统时间

[oracle@c3db0215 dirdat]$ ll m1* -t
-rw-rw-rw- 1 oracle oinstall 1139154 Sep 13 16:32 m1000753 <<<----------取最新trail文件号(0753),注意m1是前缀名
-rw-rw-rw- 1 oracle oinstall 21083373 Sep 13 13:56 m1000752
-rw-rw-rw- 1 oracle oinstall 99999715 Sep 13 11:34 m1000751
-rw-rw-rw- 1 oracle oinstall 128178 Sep 11 11:10 m1000750
-rw-rw-rw- 1 oracle oinstall 60830089 Sep 11 10:26 m1000749

指定replica进程读取的文件号,然后启动
alter REPLICAT REP_DS extseqno 0753 , extrba 0
start REP_DS;

info all /info * 命令确认状态正常