业界一般会有以下几种方式:
1 数据库层面的重做日志复制方式,比如ORACLE的ADG,比如DB2的HADR等。他们是通过将数据库重做日志复制到备库,然后通过数据库重新执行REDO方式实现数据复制,可以同步也可以异步。同步的模式也可以调整为高可用以及性能等模式。
2 存储复制,通过存储设备的软件功能来实现存储块儿级别的复制,比如EMC的SRDF,比如IBM的PPRC,比如HP的CA技术等等。
3 借助存储虚拟化网关实现存储级复制,比如EMC的VPLEX,IBM的SVC,NETAPP的MCC,他们都是通过存储虚拟化网关实现直接或者间接的双写复制,但是也是基于存储块儿级别的复制。
4 借助磁盘镜像的方式来实现IO的双写,比如ORACLE ASM方式。
>从实现条件上来讲,1只需要以太网条件。2&3&4都需要光纤环境来实现。
>从复制数据量上来讲,1只需要复制重做日志,数据量很小。而2&3是完全的逻辑块复制, 4则是计算节点层面的正常IO落盘。
>从逻辑错误上来讲,1&4可以避免存储逻辑坏块儿问题。而2&3都无法避免。
>从与上层的逻辑隔离上来讲,1&4 需要消耗必要计算资源,对数据库应用会有部分影响。2&3完全依靠存储底层实现数据复制,对上层没有影响。
如何选择,看自己的容灾目标和成本投入以及根据业务特点对各种风险承受的限度来选择合适的复制方案。当然也可以部分组合着来,各取其优。
收起