Oracle OGG 单表重新初始化同步的两种思路
by ACDdante
一、应用需求
由于多种原因导致OGG源端和目标端两端数据不一致,且总体数据量差异较大,如果整个schema重新进行初始化,工作量过于巨大,且业务要求也不允许。在这种情况下,可考虑对数据出现不一致的单张表或者多张表进行初始化。
二、基本思路
001、使用replicat进程完成单表重新初始化
①在目标端将出现数据不一致的表从replicat进程中排除
②基于源端SCN对单张表或者多张表单独建立replicat进程进行初始化
③等到新的replicat进行无延迟时停掉目标端对应的datapump进程
④停止并删除新建的replicat进程,在原replicat进程中添加这些差异 表,指定SCN启动rep进程,完成数据同步
002、使用expdp/impdp数据导入导出完成单表重新初始化
①在目标端将出现数据不一致的表从replicat进程中排除,并重启rep进程
②在源端,基于最新SCN将该表单独导出expdp,并拷贝至目标端
③在目标端,删除该差异表,drop table schema.tablexxx;使用impdp重新导入该表数据。
④目标端,replicat进程将该表配置同步,指定SCN重新启动replicat进程,观察数据同步状态
!==============================================!
1、在目标端上,将MS_XXX 单表排除
edit param reptxyy
MAPEXCLUDE HIS.MS_XXX
重启REPXXXX应用进程
2、在 源端上查询最新的SCN