浪擎双活容灾克服Goldengate丢失数据的缺陷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浪擎双活容灾克服Goldengate丢失数据的缺陷
浪擎AgileMirror镜像系统是数据库级别的实时复制容灾产品,实现双活容灾,支持SQLServer数据库、Oracle数据库、文件系统等应用系统的容灾;支持主流操作系统;支持单机、双机高可用等环境。
镜像系统具备自动化全量复制、实时增量复制、数据库容错、监控、报警、切换、回切这些功能。
但数据同步功能较弱,如不具备异构数据库复制、数据抽取等功能。
Oracle GoldenGate是一款极为优秀的数据同步软件,支持主流的数据库,甚至支持异构数据库的数据同步。
但其容灾功能非常弱或不具备。
并且,不适合在应用程序调整比较频繁的应用场境中使用,如频繁的数据库DDL操作,很容易导致两端数据不一致,从而失去容灾意义。
浪擎双活容灾就克服了Oracle Goldengate数据不一致的风险。
一、浪擎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 GoldenGate
Oracle GoldenGate是一种基于日志的结构化数据复制方式,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右),再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。
四、Oracle GoldenGate丢失数据的原因分析
Oracle GoldenGate依赖精细化的日志分析和数据操作,极易导致两端数据不一致。
GoldenGate需解析每条日志记录来获取应用程序提交的数据和部分数据库DDL操作,丢弃部分数据库系统自身保存的数据和大部分的DDL操作,需关闭容灾端数据库对象之间的关系和设置,才能将分析出来的数据按照生产端的事务顺序保存到容灾端数据库。
如果丢失了需要的DDL操作,或具备没有主键的表,或容灾数据库的触发器没有关闭,则将导致Oracle GoldenGate丢失数据。
因此,Oracle GoldenGate不适合在应用程序频繁调整的应用场境中使用。
Oracle GoldenGate受制于其自身的复制原理而无法实现主备数据库结构关系一致,如在复制期间需关闭触发器、主外键关系等数据库对象,因此在容灾切换时需要恢复容灾数据库结构关系才能运行业务应用。
浪擎镜像系统不做精细化日志分析和数据操作,仅分析日志记录的SCN以及组装顺序,支持所有的数据类型和DDL操作,两端数据库保持一致的结构关系。
因此,不存在两端数据不一致的问题,且故障切换更快速。