非oracle db以 sqlserver为样例说明:

我的思路




A :oracle db 生产 


B: oracle db 中间机


C: sqlserver db 目的端






A-> B->C


注意:B上既有rep进程也有ext进程,此时。C上也须要建立针对B的rep进程。




A->B能够完毕 在线的完毕初始化同步(基于scn号的expdp)




A->B的初始化做完之后,stop 掉 B的rep进程,此时B库为静态数据库,此时进行B->C的同步(使用etl工具 or sqlserver dts等等)




当B->C的初始化同步完毕之后,


开启B上的rep。开启C上的rep,形成A-> B->C 这三个db上的ogg进程都在工作的局面。


业务低峰(夜深人静)时。当a上的ext lag为零时,stop A上的ext,等待A上的dp 。b上的rep。b上的ext,c上的rep(来自b)均干完活---lag 进程名

记录A上的ext读检查点,写检查点。

记录A上的dp读取检查点。--info dp showch






在A上新建立从A到C的传输进程dpatoc。改动dpatoc的读取检查点。


在C上新建立repfromA ,以应用 dpatoc传输过来的trail文件。