2011年(3)
分类: Oracle
2011-11-22 17:36:43
而针对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来实现初始化装载吧,当然,平台要支持才行。
不是说我们为什么总要去关注GoldenGate的使用和发展,而是有时候确实有很多数据迁移与复制方面的需求,在严格限制停机时间的情况下,我们需要有这样一个经得起考验的工具来实现,当然,这样的工具其他厂商也有一些,但是大部分都是通过底层去调用并行datapump去实现的。