暂无图片
分享
豆宇斯
2022-08-10
OGG 抽取延迟问题

源端是一套Oracle 19c双节点RAC,只在1节点上部署了到另一个单机Oracle库上的抽取进程,用的集成模式,需要同步400张表,最近频繁出现抽取延迟的问题,不是每天都出现,但是只要出现都是在固定的几个时间段内,目前查到以下信息

1. 延迟时间段内40分钟左右未生成trail file文件,正常情况3分钟左右一个

-rw-r-----. 1 oracle oinstall 48M Aug 10 16:01 IV000416416
-rw-r-----. 1 oracle oinstall 48M Aug 10 16:42 IV000416417

2. 与正常时间段相比,延迟时间段内DB负载明显增高,大概在3倍左右,服务器32cpu,最高时候db time/elapsed time能达到40以上

3.延迟时间段内执行send trace和showtrans均报错OGG-15163

2022-08-10T16:07:26.083+0800 INFO OGG-00987 Oracle GoldenGate Command Interpreter for Oracle: GGSCI command (oracle): send XXX trace XXX_20220810.trc.
2022-08-10T16:08:26.142+0800 ERROR OGG-15163 Oracle GoldenGate Command Interpreter for Oracle: There was a problem sending a message to EXTRACT XXX (Timeout waiting for message).

4.此前以为是长事务导致,现在发现在晚上22点到1点的时间段内出现过01555的报错,但是在下午16~17的时间段未出现

5.等待事件没看到有什么异常

6.alert日志也没看到有什么异常,除了LOGMINER: Begin mining logfile for session这种就是偶尔出现的ORA-00060,不过ORA-00060这个正常时间段也有

7.redo 大小2g,平均每小时生成30个左右

各位大佬有什么排查思路么,谢谢

收藏
分享
12条回答
默认
最新
豆宇斯

和MOS来回确认了两个月问题得到解决,记录一下没准对其他人有帮助

1.开始以为是长事务导致,添加了跳过长事务的参数但是没起到作用

2.分析了延迟时间段AWR报告,OSwatcher记录,IO情况,发现有条和OGG相关的sql每次都执行很慢,收集10046和sqlhc,发现system.LOGMNR_RESTART_CKPT$这张表HWM存在问题,4k行数据占了120G,做shrink后成功解决,参考MOS文档

How to reduce the Highwater of LOGMNR_RESTART_CKPT$ ( Doc ID 429599.1 )

同时也需要对索引做shrink

alter index SYSTEM.LOGMNR_RESTART_CKPT$_PK shrink space;

暂无图片 评论
暂无图片 有用 0
暂无图片
薛晓刚

看上去IO等等严重。  一个小时60G,写入量不小。看看磁盘和网络处理的过来吗?

暂无图片 评论
暂无图片 有用 0
豆宇斯

IO感觉没啥明显变化,应该不是网络问题吧,在抽取的时候就出现了延迟

暂无图片 评论
暂无图片 有用 0
张sir

把出现时段的awr和ash都传上来看看吧。另外你这个awr的对比都是问题时段的,能发个非问题时段的吗?不同日期同一时间点的。

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2022-08-11
不方便传。。上面的两张截图db time 低的是正常时候的,高的是故障时间段的
张sir

看起来故障时段比正常时段忙很多,可以确认下以下情况:

1、SQL执行次数相差多吗?

2、从awr上看,IO等待出现了明显的延迟,io响应时间有对比吗?

暂无图片 评论
暂无图片 有用 0
豆宇斯

上午10点多又出现了延迟,发现问题好像出在了2节点,1节点的抽取进程是用的集成模式,在故障时间段内2节点的alert没有logminer的信息出现,只有Thread 2 advanced to log sequence类似的提示,正常情况下是应该有提示LOGMINER: Begin的

暂无图片 评论
暂无图片 有用 0
张sir
2022-08-11
你是怎么配置的连接数据库?本地连接还是通过连接串?起并行了吗?
豆宇斯
题主
2022-08-11
这个是指logminer server吗
Thomas

请教下题主,好像因为集成模式,才需要用到LOGMINER吧。那二节点没有EXTRACT,自然应该没有LOGMINER字样啊。另外楼上薛晓刚说一个小时60G的IO。请问是从哪里看出来的呢?

暂无图片 评论
暂无图片 有用 0
张sir
2022-08-11
不是说1小时60g的io,他意思是一小时30个redo,一个redo2g,总共60g的redo日志。
豆宇斯

虽然只在1节点配置了EXTRACT,但是logminer要去两个节点分析日志的吧,在2节点的alert也能看到正常情况有logminer提示

故障时候就只有arch了

1小时60g是说每小时30个redo,每个2G吧

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2022-08-11
之前怀疑是长事务,今天发现ogg提示的长事务告警不在同步范围内,而且都是inactive的session
张sir

题主我发现这两个等待事件比较可疑:logminer builder:queue full /logminer merger:redo slot,尤其是logminer builder:queue full  看起来有3000s的等待,但是从mos上没找到相关内容,建议可以开个sr问问。

暂无图片 评论
暂无图片 有用 0
豆宇斯
题主
2022-08-11
还有个是故障时候执行send trace之类的命令会报错 OGG-15163 There was a problem sending a message to EXTRACT XXX(Timeout waiting for message).
cqiwen

bug 17210379.

换个新版本的ogg试试呢。

暂无图片 评论
暂无图片 有用 0
Thomas

题主,你说:1小时60g是说每小时30个redo,每个2G吧。这从AWR里哪里能看出来呢。我是初入门的,提这个幼稚问题,还请不吝赐教。

暂无图片 评论
暂无图片 有用 0
豆宇斯
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏