最近公司想对深圳,武汉两地做oracle的异地备援, 目前有三种选择方向dataguard,流复制和高级复制,现分别比较一下祂们的优劣。
dataguard在高可用及容灾方面一般是dba的首选,毕竟dataguard在这方面存在压倒性的优势,不管是物理备用库(physical standby database)还是逻辑备用库(logical standby database),它们都具有一些共同的待征。
配置和管理方面的成本:dataguard比stream replication简单方便;
安全与稳定方面的成本:dataguard比stream replication稳定可靠。
对于一个24x7的系统来说,这些是非常重要的,系统宕机时间的增加不仅影响着公司的形象,还会影响公司的效益;采用dataguard,数据的安全性相当有保障,物理备用库可以在最短的时间完成故障切换,逻辑备用库在保障数据安全的同时,也可以承担大量的报表等业务;由于dataguard的配置与管理比较简单,同理也降低了dba的工作强度;那什么情况下选择使用stream replication呢?
局部复制 stream可以只复制某些表或某些模式
异构环境 充分利用现有的设备与技术
远程容灾 stream对网络的要求较dataguard低
stream replication
stream replication
advanced replication
高级复制与 Streams Replication 的原理是完全不同的, Streams Replication 可以到表,用户,数据库级别,但高级复制似乎只能到表一级。
Streams Replication 不是高级复制的升级版。
异构环境下, oracle 的高可用和容灾有高级复制和 stream 复制两种,两种的异同点如下:
1.高级复制是基于触发器(trigger)原理,而stream是基于日志挖掘原理,因此stream复制对源数据库的性能影响更小,但实时性不如高级复制。
2.高级复制复制的对象是基于数据库目标(object)的,如表、索引和存储过程,而stream复制可以针对表、方案(schema)和整个数据库,因此如果出于容灾整个数据库的考虑,stream复制的配置相对简单。
3.高级复制是一种相当成熟的技术,在许多关键系统中得到成功的运用,相对于9iR2推出的stream复制,高级复制目前在稳定性与安全性方面更经得起考验。
4.从发展的角度看,流的应用会越来越多,从oracle10g,oracle公司提供了从高级复制向流复制移植的工具,可以看出,oracle公司会更偏重于基于流的新技术。
5.由于高级复制是基于触发器的,因此所有的复制对象结构(ddl)的改变,都必须通过oracle提供的复制包来实施,和应用结合的比较紧,更适合于开发者使用,而流复制则更适合dba来实施。
stream对系统的设计与维护方要有相当的对stream技术的把控能力,而大多数系分与DBA对这个东西都没有经验,所以难以推广;dataguard胜在维护简单可靠,一般dba都可以维护。stream以后会的前景会非常广阔! 尤其是双向复制,解决了很多实际问题。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9902302/viewspace-702251/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9902302/viewspace-702251/