在OGG中跳过Oracle DB 长事务的命令
最后更新于:2022-04-01 14:47:06
在OGG中跳过Oracle DB 长事务的命令
~~~
GGSCI (hostdb2) 2> SEND EXTRACT extxxx , SKIPTRANS 10.40.1122351 THREAD 1
Sending SKIPTRANS request to EXTRACT EXTXXX ...
Are you sure you sure you want to skip transaction [XID 10.40.1122351, Redo Thread 1, Start Time 2015-06-05:13:03:48, SCN 3035.1404832899 (13036630576259)]? (y/n)y
Sending SKIPTRANS request to EXTRACT EXTXXX ...
Transaction [XID 10.40.1122351, Redo Thread 1, Start Time 2015-06-05:13:03:48, SCN 3035.1404832899 (13036630576259)] skipped.
GGSCI (hostdb2) 4>
~~~
10.40.1122351这个长事务的来源:
~~~
GGSCI (hostdb2) 1> send extxxx, showtrans
Sending SHOWTRANS request to EXTRACT EXTXXX ...
Oldest redo log files necessary to restart Extract are:
Redo Thread 1, Redo Log Sequence Number 14727, SCN 3388.1470752302 (14552819951150), RBA 429154320
Redo Thread 2, Redo Log Sequence Number 10195, SCN 3388.1471271618 (14552820470466), RBA 327736336
------------------------------------------------------------
XID: 7.8.447821 ------>这就是事务的id。
Items: 268257 ------->注意这个数字,当send extxxx, showtrans再次执行一遍时,该值在不断减小,这说明extxxx进程在干活。
Extract: EXTXXX
Redo Thread: 1
Start Time: 2015-11-24:02:00:13
SCN: 3388.1470752302 (14552819951150)
Redo Seq: 14727
Redo RBA: 429154320
Status: Running
--->>>>>>额外注意:Select * from gv$transaction where xidusn=7 and XIDSLOT =8 and XIDSQN =447821;居然查不到记录。
--->>>>>>额外注意:死事务查询(如下)也查询不到死事务:
--->>>>>> select ktuxeusn USN, ktuxeslt Slot, ktuxesqn Seq, ktuxesta State, ktuxesiz Undo
--->>>>>> from x$ktuxe
--->>>>>> where ktuxesta <> 'INACTIVE' and ktuxecfl like '%DEAD%' order by ktuxesiz asc;
------------------------------------------------------------
XID: 23.11.535573
Items: 0
Extract: EXTXXX
Redo Thread: 2
Start Time: 2015-11-24:08:37:32
SCN: 3388.1475780146 (14552824978994)
Redo Seq: 10215
Redo RBA: 189050896
Status: Running
~~~
最后,有人会问,你这样跳过事务,那复制就不完整了啊。其实,针对这一点,我认为复制还是完整的(即:数据复制是完整的)
~~~
1. Select * from gv$transaction where xidusn=7 and XIDSLOT =8 and XIDSQN =447821;居然查不到记录。
~~~
从这一点来说,2个db实例中均没有此事务的记录。
---引出了另外一点,db实例中都没有该事务,你用ogg命令的查询为啥能查到?---我猜测是ogg的命令可能借助了OGG的BR。
~~~
2.如下命令的结果
GGSCI (hostdb2) 1> send extxxx, status
Sending STATUS request to EXTRACT EXTXXX ...
EXTRACT EXTXXX (PID 23683)
Current status: Recovery complete: Processing data with empty data queue--->注意此处的空队列。
Current read positions:
Redo thread #: 1
Sequence #: 14736
RBA: 119375680
Timestamp: 2015-11-24 04:34:52.000000
SCN: 3388.1471781460
Redo thread #: 2
Sequence #: 10214
RBA: 381925240
Timestamp: 2015-11-24 05:00:17.000000
SCN: 3388.1471790456
Current write position:
Sequence #: 268963
RBA: 5568905
Timestamp: 2015-11-26 09:20:12.756297
Extract Trail: /u02/ggs/dirdat/aa
~~~