为了不错过每一期干货,强烈建议关注我
写技术文章,纯属“为爱发电”;更新不易,希望大家能够多多支持
1️⃣ 点赞的人,今年都升职加薪了
2️⃣ 点在看人,今年一定会发财
3️⃣ 评论区交流技术,每条留言都会回复
如何估算 GoldenGate Extract 重做处理速度?
问题描述
有时候,我们想估算 OGG Extract 性能的一个常用标准是其处理 Oracle 重做日志/归档日志的速度。本文介绍一种估算该速度的方法。
适用范围
Oracle GoldenGate 版本 10.4.0.0 及更高版本
估算方法
通过执行send extract <ext>, status命令可以查看 Extract 当前的读取位置。该位置可能与当前检查点不同,因为检查点仅定期更新。因此,这种方法比通过info extract <ext>估算更为准确。
如果获取两个时间点的读取位置,其差值即为 Extract 处理的字节数。将该差值除以两次快照的时间间隔,即可得到处理速度。
第一次快照:
基于一个 2 节点 RAC 数据库
GGSCI (wewin1) 7> send extract ext_act1, status Current read positions: Redo thread #: 1 Sequence #: 1266 RBA: 134567004 Redo thread #: 2 Sequence #: 1063 RBA: 260113712第二次快照(2分钟后):
GGSCI (wewin1) 8> send extract ext_act1, status Current read positions: Redo thread #: 1 Sequence #: 1268 RBA: 176425880 Redo thread #: 2 Sequence #: 1064 RBA: 265242016归档日志文件大小:
- arch_1_1266.arc: 300 MB
- arch_1_1267.arc: 200 MB
- arch_1_1268.arc: 800 MB
- arch_2_1063.arc: 334 MB
- arch_2_1064.arc: 1000 MB
计算处理的字节数:
- 线程 1:(300 MB - 134567004/1024/1024) + 200 MB + 176425880/1024/1024 = 540 MB
- 线程 2:(334 MB - 260113712/1024/1024) + 265242016/1024/1024 = 339 MB
Extract 在 2 分钟内处理了 540 MB + 339 MB = 879 MB,约为26.4 GB/小时。
进一步估算:
假设未处理的归档/重做日志总大小为 60 GB,重做日志生成速度为 10 GB/小时:
处理现有日志所需时间:
60GB / 26.4 约等于 2小时16分钟Extract 追平延迟(lag=0)所需时间:
60/(26.4-10) 约等于 3小时40分钟
限制说明
- 当 Extract 挂起或处理极慢时,
send extract <ext>, status命令可能会超时。 - 本文示例仅适用于 Oracle 数据库。对于其他数据库,如果检查点可转换为文件 RBA,也可采用类似思路估算。
其他方法
- 在版本 11 中,可使用活动日志跟踪功能,在读取切换重做/归档日志时写入日志。可参考文档 1204284.1 中的“trace redo log switch similar as old parameter LOGSWITCHMSG”。
- 在版本 10 中,可使用参数
tranlogoptions LOGSWITCHMSG。由于日志不显示当前读取的 RBA,计算时应排除第一个和最后一个序列。
参考资料
- MOS 文档 ID:1356524.1