暂无图片
OGG抽取进程报错:OGG-01028
我来答
分享
枫叶
2021-11-24
OGG抽取进程报错:OGG-01028

源端OGG抽取进程,报如图所示告警和错误;


由于是凌晨报错,早上再查找该长事务对应的sql,查不到了;


info all 看抽取进程,还是running状态,但是report中已经报错;抽取进程也不再继续读取归档了;
stop抽取进程,无法正常停止;kill掉抽取进程后,再start,过一阵子,可以继续正常运行;

但是,基本上每天都会因为长事务,导致抽取进程停滞;这个问题如何解决呢;

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
jieguo

根本处理得优化事务。

在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;

参考:http://t.askmaclean.com/thread-3398-1-1.html


暂无图片 评论
暂无图片 有用 0
枫叶

你发的这个看到过;

WARNLONGTRANS 2h,CHECKINTERVAL 3m 这个设置过了;

现在的问题是,这个长事务不定什么时候出现,比如这次,凌晨1点出现,OGG进程停滞了,等早上来检查,已经找不到长事务对应的sql了;所以,不知道是什么长事务;也没法定位优化;

暂无图片 评论
暂无图片 有用 0
jieguo
2021-11-24
根据时间段查看下awr报告呗,找找慢sql基本就差不多定位了。
Thomas

从第二个错误OGG-01028看,归档日志编号725554,目前还在吗?

暂无图片 评论
暂无图片 有用 0
枫叶

归档日志都在;

暂无图片 评论
暂无图片 有用 0
枫叶

上午kill掉抽取进程后,再start抽取进程,过了一阵,抽取进程可以继续正常执行了;

然后执行了大概1小时左右吧;又开始报错;


暂无图片 评论
暂无图片 有用 0
枫叶

经过MOS查询,增加了参数:TRANLOGOPTIONS _DISABLESTREAMLINEDDBLOGREADER

问题得到了解决;

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏