Oracle GoldenGate与磁盘复制和卷复制对比

Oracle GoldenGate与磁盘复制和卷复制对比

如IBM、EMC、HP等存储厂商的镜像技术,Veritas等厂商的卷复制技术等。

优点:

  • 灾备的可靠性
  1. 在日常业务状态下的容灾,存在以下两个问题:
  • 对于业务数据而言:

数据变化的最小粒度是交易,每个交易的数据应当全部被复制到目标端或者全部不被应用到目标端,这样才能保证目标数据是一致的;如果出现只有部分交易数据被复制到目标端,则目标数据就会出现不一致的情况,这是业务所绝对不能允许的。

底层复制技术从原理上根本无法获取交易的边界,例如如果一个大交易有10万点记录,那么在灾难发生时可能只传输了5万条,那么底层复制会把这5万记录复制过去,无法保证交易的完整性;而GoldenGate是逻辑复制技术,完全可以判断出来交易数据不完整,不在目标端应用该部分数据。

2)对于系统数据而言:

更为严重的是,由于这些底层复制技术对于逻辑数据的不可感知,如果在复制中断时正好数据库在更新系统数据(如控制文件、表空间等数据库内部信息),则有可能出现目标数据库出现无法装载和打开的情况,由此会造成容灾的失败,对客户业务造成严重影响。GoldenGate数据复制的备份端始终处于打开状态,可以时刻接管业务,其容灾可靠性是其它底层技术所无法实现的。

 

  1. 对于人为失误和数据库Bug等意外因素

磁盘阵列和卷复制为低级复制,会把磁盘操作忠实的传播到备份端,这里面也也包括错误操作,这种错误可以是人为的,也可以是系统错误。比如操作人员失误删除了一个文件,或者磁盘写入出现错误,或者数据库有一个bug,都有可能造成数据丢失,严重的时候会造成数据库不可用。磁盘阵列复制和卷复制会忠实的传播到备份端,这样两端数据库会出现同时数据丢失或不可用的情况,导致容灾失去意义。

GoldenGate只复制交易数据,不会传播这些底层错误到备份端,可以在出现上述错误的情况下保证备份端的可用性。

 

 

一个问题:可以向各个硬件厂商提出问题,在使用磁盘镜像技术复制时,如果业务繁忙时段出现复制中断,目标数据库是否保证可以打开?

 

正如上所述,没有一个底层复制技术能够保证目标数据的可用性,而客户花费大量投资建立一个容灾系统,目的就是为了保证在出现灾难时容灾中心的数据是100%可用的,如无法保证100%可用性就意味着灾难发生肯能会丢失容灾中心全部的数据,容灾系统建设也就失去了意义。

 

  • 容灾指标
  1. 接管时间短 – RTO小:

容灾当中有一个很重要的指标RTO(Recovery Time Object)表示系统出现灾难后恢复到正常运行的时间。对于磁盘阵列级复制和卷复制,它们的备份端是不可用的,如果出现灾难需要重新装载磁盘或卷,数据库也需要重新恢复和启动,因此接管时间比较长。而GoldenGate的备份端是活动的,可以在灾难出现后立即把业务接管过来,快速恢复业务,大大减少RTO。

 

  1. 异地备份数据丢失少 – RPO小:

容灾的另外一个指标RPO(Recovery Point Object)表示系统出现灾难后数据丢失的时间。容灾的数据丢失取决于数据复制的延迟,而延迟除去技术本身的机制外还要取决于网络及其在网络上传输的数据量,相同带宽条件下所需带宽最低的技术所丢失的数据最小。

 

  • 经济性和投资回报率
  1. 带宽要求低

这是因为GoldenGate需要在网络上传输的数据量要小。磁盘阵列的数据复制是以块为复制单位,当块中任何数据发生变化,整个块都要复制到备份端。对于卷复制,通过把逻辑卷划分为若干个单元,当每个单元中发生变化,则将此单元发送到备份端。由此可见,无论是磁盘阵列复制还是卷复制,都要传输大量的冗余数据。而GoldenGate是通过解析数据库日志,只复制其中数据的变化,因此相对于磁盘阵列和卷复制方式,数据量要小很多。另外GoldenGate还可以提供数据压缩功能,可以进一步降低网络传输的数据量。如果采用磁盘阵列复制和卷复制,在交易量比较大的情况下一般都要求采用光纤等高带宽的传输方式,投资和运营的费用非常大。而采用GoldenGate则有可能采用比较低廉的通讯链路比如租用电信的DDN线路,从而节约很大一笔费用。如果相同的网络情况下,GoldenGate因为要传输的数据量小,它的延时会比磁盘阵列和卷复制要小。

例如,根据某国家机关的统计,GoldenGate数据复制带宽占用约为磁盘阵列复制的1/300或更小。例如,其两家数据量相当的分支机构,使用磁盘阵列复制的点日常复制占用60兆带宽,则使用GoldenGate复制的点日常带宽占用只有约200K左右。

 

  1. 高兼容性、降低投资

对于磁盘阵列复制,各厂家一般要求用同一厂商的同种或者几种磁盘阵列,操作系统和数据库也必须保持一致。对于卷复制,对磁盘阵列兼容性好,但是也需要相同的操作系统和数据库。而GoldenGate则可以兼容各种磁盘阵列,也可以跨不同操作系统和不同数据库以及数据库不同版本,因此客户在采购方面可以更为灵活,处于更有利的商务地位。另外,采用磁盘阵列复制或卷复制方案原有设备可能需要彻底更新,而利用GoldenGate可以跨平台复制的特性可以将旧设备用作备份端,保护以前的投资。

 

  1. 实现目标库的再利用

使用GoldenGate建立灾备系统以后,由于灾备系统数据库是活动的,可以在日常担负部分报表、查询等业务。可以将主机的部分业务转移到备份端执行,实现负载均衡,有效地降低主机的负荷。比如,一些查询相关的业务就可以放到备份端,提供实时的数据查询。而磁盘阵列级复制和卷级复制备份端是不可用的,无法做到负载均衡,某些厂家可以作只读的快照,但是在数据量大的情况下需要时间会比较长,而且数据不是实时的。

 

  • 可扩展性

GoldenGate可以实现一对一、一对多、多对一、双向复制等多种灵活的拓扑结构,它可以实现数据的分发和集中以及对等复制,非常灵活。比如容灾中广泛采用的n+1备份模式,只需建立一个备份中心,通过GoldenGate实时复制将各数据库的数据整合到一个数据库,提供统一的数据视图,而磁盘阵列复制和卷复制只能做到物理上的集中,无法实现逻辑上的集中。

 

 

 

缺点

  • GoldenGate不能复制数据库以外的数据

例如应用程序。磁盘阵列复制和卷复制则没有这个限制。可以如下解释:

  • 应用程序的容灾是不必要的

应用程序与数据不同,数据是一直在持续变化的,而一般客户均有正式的应用开发、测试和发布流程,是间断更新的,而且无需担心没有备份。

如果仅仅是数据库出现灾难,可以直接将现有应用切换到容灾库上。

如果考虑应用系统容灾,可以在备份端维护一个备用应用系统,发布新版本时同时发布一份;或者RTO要求不高时也可以灾难发生后临时在目标端部署。

  • 应用程序使用磁盘阵列复制是不可靠的

应用程序如果通过磁盘阵列复制到目标端,会出现与数据库一样的应用程序数据不一致,导致会出现应用系统无法启动的问题。

  • 应用程序使用磁盘阵列复制会延长接管时间和带来人工风险

使用磁盘阵列复制备份的应用系统即使可以启动,也需要对应用程序中相当多的配置进行人工现场重新修订才可以重新启动服务,如与数据库之间的链接、与其它各系统之间的连接等等。这些配置由于磁盘阵列复制目标是不可用的,只能等待接管时进行重新调整,造成接管时间延长,同时紧急时刻的人工操作可能会带来认为失误。而使用数据库级复制技术,由于目标端是活动的,可以日常对于应用和数据库调整好,灾难接管时直接接管即可。

 

  • GoldenGate需要消耗一定的CPU和内存等主机资源

对系统影响不大,一般占用CPU在3%左右。

卷复制也是软件复制大概需要占用10%或更多的资源。

而磁盘阵列复制不占用主机资源,但是要求更为高性能的磁盘阵列。

因此综合起来GoldenGate占用资源依然是相对较低的。

 

  • 只能做异步复制

磁盘阵列复制和卷复制可以做近距离的同步复制,如果是距离超过一百公里同样无法做到同步复制。

四、维护工作较多

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号