- 最后登录
- 2017-5-4
- 在线时间
- 81 小时
- 威望
- 999
- 金钱
- 2391
- 注册时间
- 2013-9-11
- 阅读权限
- 150
- 帖子
- 1124
- 精华
- 5
- 积分
- 999
- UID
- 1220
|
1#
发表于 2013-11-3 22:56:43
|
查看: 4116 |
回复: 0
goldengate OGG-01027(长事务)
在extract中添加:
WARNLONGTRANS 2h,CHECKINTERVAL 3m
ggserr.log文件中会记录大事务警告
WARNING OGG-01027 Long Running Transaction: XID 82.4.242063, Items 0, Extract YX_EXT1, Redo Thread 1, SCN 2379.2132775890 (10219859973074), Redo Seq #5688, Redo RBA 195997712.
GGSCI> send extract xxx, showtrans [thread n] [count n]
thread n是可选的,表示只查看其中一个节点上的未提交交易;
count n也是可选的,表示只显示n条记录。
例如:查看xxx进程中节点1上最长的10个交易,可以通过下列命令:
GGSCI> send extract extsz , showtrans thread 1 count 10
记录XID,通过DBA查找具体的长交易执行的内容
GGSCI> SEND EXTRACT xxx, SKIPTRANS <82.4.242063> THREAD <2> //跳过交易
GGSCI>SEND EXTRACT xxx, FORCETRANS <82.4.242063> THREAD <1> //强制认为该交易已经提交
使用这些命令只会让GoldenGate进程跳过或者认为该交易已经提交,但并不改变数据库中的交易,他们依旧存在于数据库中。因此,强烈建议使用数据库中提交或者回滚交易而不是使用GoldenGate处理。
查找长事务对应的SQL语句:
XID由三部分组成:XIDUSN.XIDSLOT.XIDSQN
通过以下语句查找对应的SQL语句
select /*+ rule*/b.USERNAME,b.SCHEMANAME,b.OSUSER,b.MACHINE,c.SQL_TEXT
from v$transaction a, v$session b, v$sql c
where a.XIDUSN = 5
and a.XIDSLOT = 42
and a.XIDSQN = 1920
and a.ADDR = b.TADDR
and b.SQL_ADDRESS = c.ADDRESS
and b.SQL_HASH_VALUE = c.HASH_VALUE;
|
|