Oracle GoldenGate 常见问题:长事务处理


长事务的影响

OGG是基于事务级的实时复制工具,也就是说OGG只复制已提交的事务,在遇到事务的commit或rollback之前,它会将每个事务的操作存储在称为cache的托管虚拟内存池中。内存再大也有不够用的时候,当事务数据超过一定的阈值或者当前空闲内存无法满足分配请求时,OGG进程会将最少使用的old buffer swap 到磁盘上的dirtmp中。

当OGG遇到长事务时,如果extract进程因某种原因终止,原有的文件系统上的临时数据都将被删除,重启后会根据recoverycheckpoint查找最早开始进行的长事务起始点所在的归档日志进行恢复,如果重启时发现所需归档被删除,则extract进程将无法重启,只能通过恢复归档或初始化解决。即使归档存在,重启后进行recovery会很大程度影响OGG 的性能。

长事务的处理

1.监控ggserr.log 中的长事务警告,可以通过配置extract 进程参数warnlongtrans 调整警告频率

2.监控数据库中的长事务

selectstart_timefrom gv$transaction;

3.ggsci提供了如下命令来处理未提交事务

send extract ,showtrans查看正在处理的未提交事务

send extract ,skiptrans跳过事务(不建议)

send extract ,forcetrans强制认为事务已经提交(不建议)

建议所有的事务提交或回滚操作都在数据库中进行

4.说明:在OGG11g中,extract提供了BR参数可以设置每隔一段时间(默认4小时)将长交易缓存及BR检查点到本地硬盘(默认dirtmp目录下),因此extract只要不停止一般需要的归档日志不超过8个小时(极限情况)。但是如果extract停掉后,便无法再自动缓存长交易,需要的归档日志就会依赖于停机时间变长。

RAC环境下管理OGG-HA 

RAC环境下配置OGG同步

GoldenGate单向表DML同步

Oracle GoldenGate 系列:Extract 进程的恢复原理

Oracle GoldenGate安装配置

Oracle goldengate的OGG-01004 OGG-1296错误

相关内容