客户环境11.2.0.4,LInux redhat 6.9 ,2节点RAC,运行多个OGG进程。
1.现象,监控告警, xx ip /u01 使用率过高;
2.登录环境,检查发现alert日志 1G??? 服务器存在脚本,每天mv alert日志,因此单天alert一般远远小于1G
3.tail -200f a*.log
输出ORA 01555 刷屏!!!
ORA-01555 caused by SQL statement below (SQL ID: 415z3g9r6r1c7, Query Duration=0 sec, SCN: 0x0006.37709561): SELECT x."Q_NAME",x."MSGID",x."CORRID",x."PRIORITY",x."STATE"······ 省略50个列名称 FROM "AAA"."BBB" AS OF SCN :scn x WHERE "ID"=:a0
这个SQL是不是很奇怪??? select * from tab as of scn xxx where id=???;
4.检查ogg 抽取进程
果然发现存在延迟非常高的进程!!!
EXTRACT RUNNING E_6X 69:09:18 00:00:07
与客户沟通,可以删除
"AAA"."BBB" 这个表不需要同步!!! 因此直接注释,重新重启抽取进程。问题解决!!!
关于源端抽取进程如何加快???
1.删除不需要同步的表;
2.对变换很大的表进程拆分,这样变换少量的表OK,但是dml操作太频繁的表,还是无法优化;
3.可以通过参数只抽取某些符合条件的数据??? 等,本次不做说明。