一、浪擎AgileMirror镜像系统
镜像系统不依赖DataGaurd、LogMinor、DBCC LOG等数据库自带的日志工具来实现数据复制,完全依靠自身研发的数据库实时捕获引擎ACA和数据组装两大核心技术来实现全量复制和实时增量复制。容灾端数据库处于在线运行状态,具备最高的可靠性,且用户可以随时查询业务数据来检验容灾结果。这是
双活容灾最大的优势。
1.实时增量复制
镜像系统的事务日志实时捕获模块实时监控生产数据库的redo事务日志文件或归档日志文件,捕获其变化数据;传输控制模块从变化数据缓存池中取出数据传输至容灾服务器;容灾服务器将变化数据保存至容灾端的缓冲池中;组装模块根据Oracle数据库的特性将变化数据拼装成可恢复事务;装载线程将组装好的事务恢复到容灾数据库。
容灾Oracle数据库处于运行状态,处于只读状态,可读可查询。
2.无需停机的、自动的追逐式全量复制
在实时增量复制之前,需要保障生产、容灾数据库之间的数据相同,才能进行后续实时增量复制。在完全无需停止业务数据库的条件下,极快的将源数据库全量复制或迁移到目标容灾服务器。
追逐式复制原理∑= ∑存量+ ∑变化:复制存量数据与数据库对象到容灾数据库;复制在第一步复制期间变化的事务;将第二步的复制结果保存到容灾数据库。
3.传输断点续传能力
镜像系统能够提供网络失败、数据库失败、主机失败的断点续传能力。镜像系统把变化数据保存在缓冲池中,Oracle镜像的传输控制模块记录当前传输成功的数据块RBA,当故障修复后自动传输下一条RBA。这样的机制使得当复制链路中的任何一台数据库服务器出现故障暂时不可用,或发生网络中断等事故,并在故障被修复后,镜像系统都能自动的恢复数据复制。
4.快速的容灾接管
两端数据库都处于可用状态,因而可实现快速的接管,接管时间基本等于应用系统切换连接数据库的时间。在容灾方案中没有比这种接管更快的方法。
浪擎提供手动或自动切换至容灾端备用系统的手段。手动接管时,只需将备用Oracle只读状态改为读写状态即可。
5.CDP数据容错功能
镜像系统提供持续数据保护能力CDP。镜像系统的CDP技术能够保存任一数据块级别的数据更改,或保存任一数据库事务,并提供记录着所有历史数据状态的动态恢复日志,用灵活的“任意时间点(any-point-in-time)”或“任意事务(any-transaction)”恢复方式取代了传统的指定数据库状态恢复到过去的某个时间点的“Point-in-time”恢复方式,为Oracle数据库提供了更全面的保护。
镜像系统提供基于任意时间点的恢复手段,或基于数据库事务SCN的恢复手段。
6.构建生产、查询相分离的业务环境
Oracle数据库允许同一数据库创建两个运行实例,一个实例用于容灾,一个实例用于查询。利用这个原理,镜像系统可在容灾服务器或第三台服务器上建立一个与生产数据库保持数据同步的查询数据库实例,在这种配置环境下,在线事务处理可以获得很好的性能,而查询统计处理可在不影响正常业务的情况下进行。通过这种独特的配置策略可以非常好地解决在线事务处理和查询统计处理之间的竞争问题,不管查询统计系统会消耗多大的系统资源,生产系统的响应速度不会受到影响。
镜像系统构建的查询数据库处于备用只读状态,不支持写操作。
二、Oracle DataGuard
DataGuard是一种数据库级别的HA方案,最主要功能是冗灾、数据保护、故障恢复等。DataGuard是生产数据库的"事务一致性copy",创建时,使用生产库的物理copy.创建完成后,备库会通过生产库传输过来的归档日志(或重做条目)自动维护备用数据库。将重做数据应用到备用库。DataGuard分为"物理standby"和"逻辑standby"。
物理standby
主备库之间物理结构,逻辑结构保护一致。通常情况下备用库通过主库传输过来的归档日志做恢复。
基于"块对块"方式。与主数据库相同。物理standby等同于生产库。物理standby能以read only方式打开(或者在flashback数据库下以"读写方式打开")。
物理standby一旦以"读写"方式打开,备用库将不会从主数据库接受重做数据。只有当备库flashback到过去的点,当备用库flashback到"读写"打开时间点前的状态时,DataGuard会自动同步备库与主库。才能回复standby角色。
逻辑standby
只保证逻辑结构与主库一致。备用库要处于打开状态,通过从主库归档日志文件中提取出来的SQL语句做恢复。
创建时,与物理standby一样,使用主库copy.逻辑备库通过执行SQL语句来更新。DataGuard转换日志文件中的数据为SQL语句,然后在逻辑standby上执行SQL语句.因为逻辑standby是通过SQL语句来实现数据同步,那么在同步期间其必须保持打开状态。