[简述]
Oracle GoldenGate软件因其不受限于平台和版本甚至不同数据库的特性,所以在有跨库同步的需求时,是很好用的工具,被广泛应用。
不过随着业务增长,数据量膨胀,源端数据库可能面临迁移的需求,本文就介绍一种O->O情况下目标端数据库需要更换源端时的简单方法。
[原理]
在使用OGG迁移数据库时,得益于OGG进程参数配置的便捷,实际上我们可以复用同一个源端抽取进程,然后拆分出两个投递进程,分别投递到不同的目标端。如下图所示:
这样的情形下,可以保证两个目标端得到的队列文件是完全一致的,仅前缀做区分。在待迁移数据库迁移之前,我们就可以很方便得将老目标端的源端修改为新库,并保证数据的一致性。方法为:
停掉待迁移数据库的源端抽取进程,保证投递进程投递的队列文件最后的CSN一致
观察源端抽取进程的RBA不再变化后,停掉两个源端投递进程,保证新库和老目标端数据均暂不变化
观察两个投递进程的RBA均不再变化后,启动源端抽取进程,并观察是否再次抽取到DML操作,确认进程正常(源端重启抽取进程后确认进程正常非常重要,整个数据库迁移过程中最不能出问题的就是源端抽取进程)
启用新库的抽取进程、投递进程,时间为当前时间(此时新库和老目标端数据一致,且暂不变化)
观察新库