目前针对oracle数据库的远程复制容灾主要有以下几种技术或解决方案
()基于存储层的容灾复制方案
这种技术的复制机制是通过基于SAN的存储局域网进行复制复制针对每个IO进行复制的数据量比较大;系统可以实现数据的同步或异步两种方式的复制对大数据量的系统来说有很大的优势(每天日志量在G以上)但是对主机操作系统数据库版本等要求一致且对络环境的要求比较高
目标系统不需要有主机只要有存储设备就可以如果需要目标系统可读需要额外的配置和设备比较麻烦
()基于逻辑卷的容灾复制方案
这种技术的机制是通过基于TCP/IP的网络环境进行复制由操作系统进程捕捉逻辑卷的变化进行复制其特点与基于存储设备的复制方案比较类似也可以选择同步或异步两种方式对主机的软硬件环境的一致性要求也比较高对大数据量的应用比较有优势其目标系统如果要实现可读需要创建第三方镜像个人认为这种技术和上面提到的基于存储的复制技术比较适合于超大数据量的系统或者是应用系统的容灾复制
()基于oracle redo log的逻辑复制方式
使用这种方式的主要有一些第三方的软件以及oracle自己的DATAGUARD 中的logical Standby目前国外已经有了很多比较成熟的产品及成功案例国内也有类似的产品 但在产品的成熟程度和成功案例上跟国外还有一定的差距
这类产品的原理基本相同其工作过程可以分为以下几个流程
使用oracle以外的独立进程捕捉redo log file 的信息将其翻译成sql语句再通过网络传输到目标端数据库在目标端数据库执行同样的sql如果其进程赶不上oracle日志切换也可以捕捉归档日志中的内容也有的产品在源端以事务为单位当一个事务完成后再把它传输到目标端所有的产品一般都是以表为单位进行复制同时也支持大部分DDL的复制(主要在oraclei环境中)
这种技术的技术特点和优势主要有以下几点
目标端数据库一直是一个可以访问的数据库;
能保证两端数据库的事务一致性;
因为使用oracle以外的进程进行捕捉且其优先级低于oracle进程所以对源系统数据库的性能影响很小;
基于其实现原理及多个队列文件的使用复制环境可以提供网络失败数据库失败主机失败的容错能力;
因为这类软件复制的只是sql语句或事务所以他可以完全支持异构环境的复制硬件的型号oracle的版本操作系统的种类版本等都没有要求
这种方式还可以支持多种复制方式比如数据集中分发对等复制或者多层测的复制等
由于传输的内容只是redolog 或archive log中的一部分所以对网络资源的占用很小可以实现不同城市之间的远程复制
基于redolog的逻辑复制产品有很多的优势但跟上面提到过的其他方案比较起来也有一些缺点
数据库的吞吐量太大时其实据会有较大的延迟当数据库每天的日量达到G或更大时这种方案的可行性交差;
实施的过程可能会有一些停机时间来进行数据的同步和配置的激活;
复制环境建立起来以后对数据库结构上的一些修改需要按照规定的操作流程进行有一定的维护成本
不过目前这类产品的发展很快上面的这些问题在大部分产品的最新版本中都有很大的改进