GoldenGate、DataGuard与Stream Replication在数据同步和迁移方面的区别—理论篇

  GoldenGate是Oracle在数据迁移和数据同步方面要重点发展的产品,支持异构是其最大亮点。与Dataguard对比,GoldenGate在战略上是更高层次的产品,这点从GoldenGate的购买中甚至包含Dataguard的License就可见一斑。


从功能上来说,GoldenGate针对Dataguard的最大优势当然是支持异构, GoldenGate 也不会取代Dataguard,原因很简单,Dataguard支持同步复制,而GoldenGate从原理上来说实现不了,因此,这两个产品都会持续发展下去,但从重要性来讲,GoldenGate的发展要重要于Dataguard的发展,事实上,Dataguard也已经很成熟了,而GoldenGate发展空间巨大,至少从配置管理上来说,纯命令行方式早晚会被取代,可以持续改进的东西有很多。


而针对stream复制,GoldenGate的优势就太多了,不说支持异构平台了,首先它的性能非常卓越,通过解析日志的内容来同步数据,效率非常高,不依赖于数据库的运行,而stream复制,要用到stream_pool_size的内存区域,依赖数据库的性能,并且会产生很多stream相关的等待事件,而stream复制相对GoldenGate的优点,只剩下配置简单这一点。可以这么说,对于小数据量的同步,可以选择stream复制来实现,因为配置较为简单,而对于大数据量的同步复制,应该选择GoldenGate,因为性能优越,而且经得起考验,抗压性强。当然,不管数据量的多少,在性能方面,GoldenGate都是远远高于stream方式的。 


说到数据迁移时的初始化装载,GoldenGate提供了专门的工具Initial Load,可以实现大部分数据的正确迁移的,但是需要所有的表都有主键这是要格外注意的,另外,对long和lob数据类型以及嵌套表的迁移有问题,需要其他方式去解决,对sequence也有问题,关于这个后面会有一个迁移的案例进行总结。对于初始化装载来说,可以选择的方式很多,可以选择rman,可以选择datapump,也可以使用GoldenGate自己的初始化装载工具Initial Load,我们需要知道它们的区别,来满足不同的需求:
1、rman速度最快,但跨平台和版本有问题,而且操作时需要停库;
2、datapump速度较慢,可以跨平台和版本,但操作时也需要停库;
3、GoldenGate的Initial Load,速度慢,可以跨平台跨版本,不需要停库,可以在线进行。
 
因此,如果生产数据库面临数据迁移的问题,而又只有很少的停机时间,那么可以选择GoldenGate的Initial Load来实现初始化装载,因为装载的时间就算非常长,但是不影响你的生产数据库的使用,应该都是可以接受的。而如果你的生产数据库有足够的停机时间,而且平台支持的情况下,那么选择rman来实现初始化装载。




内容摘自: http://zxf261.blog.51cto.com/701797/722303
参考材料: http://space.itpub.net/9902302/viewspace-702251
http://coolbo.cc/oracle-stream-replication.html

你可能感兴趣的:(GoldenGate、DataGuard与Stream Replication在数据同步和迁移方面的区别—理论篇)