数据库读写分离

数据库读写分离
  

比较内容

Quest SharePlex for Oracle

Oracle GoldenGate

产品成熟度

 

SharePlex产品最早发布于1999年,目前的版本为7.0.2,产品成熟度非常高;成熟的产品有效地保障了数据的安全性,避免产品不稳定性对复制环境的影响,10多年来在全球有近1000个大型客户的成功案例。在中国大陆地区有超过80个的成功案例。Shareplex在多个用户环境中运行多年时间,复制链路非常稳定。

GoldenGate主要面向不同数据库之间的数据复制和同步,在Oracle数据库之间的复制并非其业务的主要方面。

目前GoldenGate在全球约有几百个成功案例,在国内有不超过10个客户,其中还有多个用户未能实施。根据GoldenGate在国内的部分用户反映,该产品在复制过程中经常出现中断或数据丢失等故障,需要大量的维护工作。

产品实现原理

Shareplex通过从Oracle日志读取数据库的所有变化信息,传输到目标数据库解析成SQL进行装载,整个过程严格遵守数据一致性的顺序,在目标数据库通过主键技术保障数据一致性。SharePlex对复制中的表是否有主键或唯一索引以及主键级别补充日志没有硬性要求,且所有数据均可由日志中捕捉出来,包括所有DDL操作,不需要从数据库中查询任何业务数据,也不需要创建人和触发器。

GoldenGate通过从Oracle日志读取数据库的所有变化信息,传输到目标数据库解析成SQL进行装载,其复制过程要求所有复制中的表必须有主键或唯一索引,同时要求打开主键级别的补充日志。GoldenGate在复制Blob等特殊类型时,无法Redo文件中获取全部信息,必须通过访问被复制的表中数据或回滚段才能完成捕捉工作,而在业务繁忙的数据库中回滚段数据更新非常快,GoldenGate经常会因此无法实现数据复制。

安装及配置

安装及配置极为简单,所有步骤均由软件提示操作,如果出现误操作将无法继续,从技术上确保了操作过程的准确性,安装后仅需要两个步骤即可以开始数据的复制。

安装配置复杂,安装后开始数据复制需要近20个步骤才可完成。且在配置过程中,如果出现错误或者遗漏步骤,不会有任何提示,很可能会造成复制软件的实施失败。

初始化同步

SharePlex在同构平台上可采用与Oracle备份恢复相结合的方式实现数据的在线初始化同步,同步过程中对生产系统数据库没有任何影响。初始化同步时间约等于数据库恢复时间。在异构环境下,SharePlex可调用OracleEXP/IMP工具,实现在线的初始化同步,同步期间系统资源占用可控制在10%以内。同步时间约等于全库进行IMP的时间,在同步过程中,还可通过调整并行度等方式,提高同步速度。

GoldenGate提供了在同构平台上可采用与Oracle备份恢复相结合的方式实现数据的在线初始化同步,同步过程中对生产系统数据库没有任何影响。初始化同步时间约等于数据库恢复时间。但初始化同和开始复制的过程中,GoldenGate不会对元数据库加锁,仅仅通过指定从某一个日志开始复制,如果此时数据库中有长时间未提交的事务跨了多个日志,就会导致GoldenGate在目标端丢失该事务的数据。在异构环境下,GoldenGate无法提供在线的初始化同步功能,必须在应用停止的情况下实现数据的初始化同步。

对生产系统性能影响

SharePlex复制软件在复制过程中完全在Oracle外部实现复制,对数据库性能影响极低,同时,捕捉到的数据在网络正常的情况下,直接通过内存和网络传输到目标系统,无需额外的磁盘I/O,最大程度的降低了对生产系统性能的影响。

GoldenGate对部分特殊数据类型需要从数据库表中查询才能复制,DDL操作也需要通过触发器来捕捉,并非真正意义的日志捕捉复制方案;同时捕捉到的数据必须先写在本地文件系统,然后再以文件的形式传输到目标端,对生产系统和目标系统都有额外的磁盘I/O占用。

复制过程中对数据的校验

复制过程中可校验数据是否一致,如果发现不一致,可在日志文件中进行记录,并将发生不一致问题具体的SQL语句记录到专门的文件里,同时将有问题的表标示为不易之状态,提供详细的诊断信息,以便用户及时解决,避免更多的错误数据。

目标端为了追求复制的性能,没有数据一致性交验机制,即使有大量数据不一致,也无法发现,用户不能及时了解复制链路的运行情况。数据错误累积下去,会引起相关应用的故障。

复制软件的异常处理

SharePlex通过多种机制来保障复制过程中的数据安全性,包括在出现复制软件、数据库、操作系统,主机等故障情况下恢复,通过复制软件本身,和在目标数据库中记录的信息,可充分保障出现以上各种意外故障后,能准确、迅速的恢复,没有任何数据损失。

GoldenGate为了追求数据复制的性能,对复制过程中的数据缺乏必要的保障机制,且由于没有在数据中记录最后完成复制的事务SCN号等信息,如果出现复制软件、数据库、操作系统,主机等故障,很容易造成数据损失,导致数据不一致,这一问题可通过极为简单的测试模拟并反复再现。

数据比较

SharePlex提供的在线的数据比较功能,如果怀疑发生部分数据不一致,可在应用不停机,且被比较的表上有操作的情况下动态的比较并定位不一致的数据,还可选择在线的自动修复,充分保障数据的一致性。

GoldenGate的数据比较模块与其复制模块之间没有任何联系,无法保障在应用不停机的情况下实现动态的数据比较功能。另外,其数据比较需要单独的服务器,并需要额外购买该模块才可实现。未提供自动修复功能,需手工进行数据的修复,手工修复过程中可能会导致新的数据不一致问题。

单表同步

SharePlex提供了方便的单表在线同步工具,仅需要一个命令,即可在线实现新增复制表或不一致表的在线同步,对业务没有任何影响。

GoldenGate无单表同步工具,如需要对复制内容中的表进行重新同步,必须先将该表放到肚子的复制队列,并通过手工方式确认该表上没有为提交事务,然后才能开始同步步骤;整个同步过程约需要20几个步骤才可完成,极其复杂繁琐。

支持的数据类型

SharePlex目前已经支持所有的Oracle数据类型,对应用程序没有限制。

支持数据类型较少,不支持如Bfile,UDT等类型。且对部分特殊字段如Blob,Clob等类型必须要通过访问复制的表来获取数据,无法通过日志捕捉来实现。

DDL操作的支持

支持绝大部分DDL操作的复制,简化了维护的工作量,所有DDL操作均从日志中捕捉。

仅支持少数几个DDL操作的复制,绝大部分操作需要人工的维护。切对DDL操作的复制需要在生产数据库创建触发器实现,并非基于日志捕捉的复制(Golden宣称它们在数据库中不需要创建任何对象,实际并非如此)。

RAC环境的支持

SharePlex支持所有平台的RAC环境,且当产品安装的RAC节点出现故障后,可通过Cluster软件自动切换到另一个节点继续复制,不需要人工干预,且不会有任何数据损失

支持RAC环境下的数据复制,但如果产品安装的RAC节点出现故障,复制链路无法实现自动的切换,在进行人工干预后,虽然可以继续复制,但每次切换都会有一定程度的数据损失。必须重新同步数据才可以充分保障数据的一致性。

技术细节

产品的成熟度是由细节决定的,Shareplex从用户方面进行考虑,非常关注技术细节。如:

(1)DDL可以选择复制或不复制,可以选择在复制出错后的处理方法;

(2)提供多种配置参数供用户选择;

(3)可以配置延迟复制

(4)可以忽略针对指定事务或用户复制

(5)可以按照用户,表,或者使用通配符配置复制关系

(6)可以穿过主流的网闸设备,并提供专门的功能设置网络配置……

GoldenGate主要面向不同数据库之间的复制,对Oracle数据库之间的复制功能比较简单,除了基本的复制外,其他辅助功能较少,无法根据用户实际应用环境实现个性化的配置及功能。

复制性能

SharePlex在目标端采用了多线程的方式实现对数据的加载,在保证所有事务的先后顺序以及一致性的基础上,对大并发量的业务也同样可保证高速的处理速度。

Goldengate由于仅复制已经提交的事务,所以在目标端只有使用单线程的情况下,才可以满足事务一致性的要求,而在处理大量并发交易的情况下,无法保障数据的处理速度,GoldenGate也提供了多通道的方式来实现并行,但使用多通道方式的情况下,会将源端的一个事物,在目标端分成多个事务,且无法保证各事务的提交顺序与源系统相同,从而无法从根本上保证数据的一致性。

大事务支持

事务开始后就进行复制,无论大事务或者小事务都可保证数据复制的实时性,所有事务与源端完全一致

事务提交后才开始进行复制,在大事务情况下延迟较大

灾难恢复后的数据库回切

SharePlex提供从容灾数据库到生产数据库的反向复制,可将接管后容灾数据库上的变化复制回生产数据库,操作极其简单,不需要重新初始化同步,可实现接近零停机时间的计划内维护。

无法提供迅速回切功能,需要把生产系统数据库全部清空,在用容灾数据库进行重新初始化同步,风险较大。

产品维护及监控

Shareplex提供成熟的手段进行复制链路的监控和维护

(1)   用户可通过shareplex控制台查看数据复制的各种相关信息,并设定个性化的参数以实现特定的功能,管理方便灵活。

(2)   可使用自带的图形监控程序,查看相关信息,当发生意外情况时可通过电子邮件实现及时的报警。

(3)   通过丰富的日记记录复制软件的运行情况;

(4)   内置支持SNMP功能,可与多种监控平台结合,实现数据复制的实施监控(使用SNMP方式)

(5)   支持电子邮件报警功能,可根据客户指定的测略,对复制软件运行情况通过电子邮件通知用户。

提供了图形化监控界面,但同样需要购买额外的模块才可实现。不支持电子邮件及SNMP方式的报警。

技术服务

 

Quest在国内有完善的服务体系,经验丰富的技术人员为用户提供实施和培训等全面服务。用户还可以通过Quest专业知识库等技术资源和完备的技术手册来学习和掌握产品技术。

Quest有专门的Shareplex全球技术支持中心,为全球用户提供7*24的技术支持。

GoldenGate厂商由于公司规模所限,无法提供7*24小时的技术支持,只能在美国的工作时间内提供有限的电子邮件支持。被Oracle收购之后,目前尚未完成相关技术资源的整合,在中国地区没有熟悉该产品的技术人员。Oracle的技术服务价格较高,且绝大部分情况仅能提供电话或邮件支持,如需现场服务,必须严格按照人天计算。


你可能感兴趣的:(数据库读写分离)