基于数据复制的高可靠性解决方案

一、概述

由于对分布式数据环境需求的不断增长,越来越多的应用提出了数据复制的需求。随着DM的发布,达梦数据库也提供了全新的数据复制功能。这种新功能是随着客户要求的高可靠性、高性能以及数据集中的需求而出现的。对于数据库来说,高可靠性是指数据库管理系统能够7*24小时不间断地为各种应用提供数据服务,高性能是指高事务吞吐量和低响应时间,数据集中和分发则是指能够将地理上分布的各数据库中的数据汇集到数据中心以及将数据中心的数据分发给地理上分布的各个数据库。

DM的数据复制功能可以有效地提升达梦数据库的可靠性,它依赖于分布式数据库技术,但同时可以提供分布式数据库所不具备的一些功能特性,由于在存取数据时有可选的数据副本,因此可以改进系统的性能和保护应用的可用性。通过使用DM数据库的复制技术可以实现集中和自治相结合的控制机制,可大大提高整个分布式数据库系统的可靠性和响应速度。达梦数据库的数据复制功能可以广泛应用于如下领域:

●  数据容灾。由于数据库中积累了大量的关键数据,特别是对一些关键应用,必须让数据库系统能够持续工作。目前业界提供了丰富的数据复制技术的硬件和软件实现,可以有效解决业务连续性的问题,具备高度的抗灾能力。

●  负载均衡。通过数据复制的数据分发功能,可以在某些应用程序中起到负载均衡的功能。如在某个应用中对一个表有大量的查询操作,通过数据复制将该表的数据分发到多个节点,可以让其他节点承担部分负载,提高系统的性能。

●  维护数据仓库。这是目前复制功能最常见的用法之一。数据仓库与生产数据是分离的,这使得它们适合特定查询,而不会影响生产应用的性能。

●  数据的分布与集中。为了实现数据容灾、负载均衡、维护数据仓库等功能,达梦数据库的数据复制实现了单主多从、多主多从以及对称复制等多种数据分布和集中的方式,为应用提供了极大的便利。

二、主要技术

数据复制就是将处于一个分布式环境中的数据库里面的数据拷贝到该环境中另一个不同的数据库中的过程。数据复制不仅可以提高系统的可靠性,还可以提升性能,并进行数据集中。根据不同的数据复制划分方法,DM不仅支持同步/异步数据复制方式,还支持同构/异构数据库之间的数据复制,支持多种数据复制模型,并内置可选的数据冲突解决方案,另外,DM还提供了功能强大的复制监测和管理工具,提供了高度可用的数据复制解决方案。

1、基本概念和原理

在分布式计算环境中需要考虑的主要问题之一就是对于不同的应用需求是采用实时存取远程数据还是采用延迟存取远程数据。这对于数据复制来讲就是采取同步数据复制方案还是异步数据复制方案。对于实际的商业问题,必须权衡这两种技术的利弊最终选择最佳的解决方案,有些问题选用同步技术比较适合,也有一些问题采用异步技术是比较好的解决方案,还有一些问题必须综合这两种技术。

 

同步数据复制

同步数据复制指通过将本地生产环境中的数据以完全同步的方式复制到异地,每一个本地交易均需等待远程复制结束才算完成。在同步数据复制中,复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。这种技术适用于那些对于实时性要求较高的商业应用中。



1 数据复制原理

1是一个典型的3层结构的应用,在不启用同步复制功能时,系统处理用户请求的过程为①->->->④。①表示用户向WEB服务器发出请求;②表示WEB服务器分析用户请求后,由应用服务器执行应用逻辑,并向数据库服务器发出请求;③表示数据库处理数据请求,然后将处理的结果返回给应用服务器;④表示应用服务器接收到数据库服务器处理结果后,转交给WEB服务器,由WEB服务器对相关数据进行封装,并转发给最终用户。如果启用了同步复制功能,则系统的执行流程变成了①->->->->->④,其中⑤表示在主数据库写完事务日志后,将需要复制的相关数据的请求发给从数据库,⑥表示从数据库处理完毕复制任务后,通知主数据库复制成功或者失败,如果复制成功,主数据库向客户端返回事务成功的消息和相关数据,如果复制失败,则整个事务被回滚,主数据库通知客户端事务执行失败。

从上面的流程我们可以看到,当采用同步复制方案的表发生变化时,达梦数据库会确保这种变化能够成功地作用在本地表和从数据库中的复制表,如果任何一个数据库执行失败,则整个事务会被成功回滚。同步复制具有实时性特点,可以保证数据的完整性和一致性,灾难发生时远端数据与本地数据完全同步。但这种方式会受到数据传输距离的限制,并且受网络带宽影响较大,如果系统存在网络存取速度很慢这样的问题,响应时间就会很慢。同步复制在网络的稳定性比较高的情况下是可行的,可以保证复制节点之间的复制数据一直保持同步。

 

异步数据复制

异步数据复制则是指将本地生产环境中的数据定期复制到异地,每一本地交易无需等待远程复制的结束就可以完成。因此异步数据复制环境下所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将经过一定的时间间隔并在不同的事务中被传播和应用到其他所有复制节点。

如图1所示,对于异步复制,系统处理用户请求的过程仍然为->->->④,其中的③与没有启用数据复制功能时略有差别。当启用异步复制时,在步骤③中还会写逻辑日志,供异步复制的代理程序定期读取。另外,异步复制代理程序还会定期执行⑤->⑥两个步骤。对于异步复制来说,⑤用于读取主数据库中的逻辑日志,将其转化为数据更新操作,发送给从数据库,⑥则是从数据库通知主数据库异步复制任务处理完毕,等待主数据库继续发送异步数据复制请求。

异步复制特征是源数据与目标数据之间并不是在任何时刻都保持完全一致,它们之间有一个延时。主数据库的变化,不是立刻反应到从数据库中,而是把产生变化的事务写入一个专门的逻辑日志中。当这些事务累计到设定值时,由复制代理程序把事务发送给从服务器。从服务器再执行这些事务来保持源数据与拷贝数据的一致。当因网络或其他问题使复制不能完成时,源数据的变化会一直保存在主数据库中直到问题解决再自动把所有保存的事务送出,并且复制两端的数据仍保持一致。

异步复制不影响本地交易,传输距离长,对网络环境要求低,具有很高的可用性和很短的响应时间,但异地数据比本地数据略有延迟。

 

除此之外,依据是否支持不同数据库之间进行数据复制,又可以划分为同构数据复制和异构数据复制。

 

同构数据复制

    同构数据复制指采用达梦数据库的专有接口,进行达梦数据库之间的数据复制。同构数据复制也支持前面提到的同步复制和异步复制功能。当只进行达梦数据库之间的数据复制时,建议采用同构数据复制方案,因为相对异构数据复制来说,由于采用了专有接口,复制性能更高。

 

异构数据复制

在一个典型的大型分布式应用系统中,通常使用了多种数据库管理系统。在这种异构数据库环境中复制数据是用户的现实要求。达梦数据库增加了在异构数据库环境中复制数据的功能。

JDBC是一种通用的数据库编程界面,它提供了访问关系型数据库的方法。通过使用JDBC,达梦数据库提供了在异构数据库环境中复制数据的高效解决方案。DM支持的异构数据库包括OracleDB2SQL Server等大型通用数据库管理系统和其他提供JDBC驱动程序的数据库,为异构数据库环境中复制数据提供了极大的便利。

基于SQL的异构数据复制,数据库的更改可以被捕捉,并临时地存储在称作关系中间表(staging table的关系表中。然后,从目标系统上的一个客户接口可以读取这些关系中间表,并将它们应用于目标表。那些以非DM数据库作为源或目标的场景,SQL Replication 可能仍是目前的最佳选择。

    数据过滤

达梦数据库的数据复制支持三种过滤数据的方法,即水平过滤、垂直过滤和水平垂直混合过滤。水平过滤就是包含了表中的一部分列,是列的子集。这时只有可以复制的列中的数据才会出现在从数据库中。垂直过滤就是包含了表中的一部分行,是行的子集。当使用垂直过滤时,只有这一部分行中的数据才可以传送到从数据库中。另外,还可以采取水平垂直混合过滤的方法,即通过选择表中的一部分列和一部分行,复制表中的一部分数据。

2、数据复制模型

数据复制模型就是数据复制设计的物理实现,一般有三种基本的复制模型,包括单主复制、多主复制以及对称复制。

  1.单主复制

单主复制就是指把一个服务器定义为主服务器,把一个或者多个服务器定义为从服务器,由主服务器上负责把被复制的数据复制给各从服务器,其结构如图2所示。这种复制模型是最基本的复制模型,也是常用的一种结构,适用于将企业的中心数据信息分散传输给各个分支机构等环境。

 

2 单主复制模型

  2.多主复制

    多主复制就是指把多个服务器定义为主服务器,把一个或者多个服务器定义为从服务器,把多个主服务器上的数据复制给各从服务器,其结构如图3所示,适用于将分支机构的数据信息传输给企业的中心等环境,各主服务器拥有本地数据,而从节点也就是数据中心拥有全部数据。在这种结构中要注意,由于多个主服务器可以向同一个复制表中写数据,因此这些数据有可能被覆盖,可以考虑通过水平过滤这些数据或者是采用某种冲突解决策略来解决这种问题。



3 多主复制模型

    3.对称复制

    对称复制就是指所有的节点既是主服务器,又同时是从服务器,起到双重的作用,如图4所示。该结构非常接近于分布式/集群数据处理环境。它允许所有节点对复制表都有更新操作的权利,任何一个节点上的复制表的更新都会被传播并被直接应用到其他所有主表。一个主节点出现问题,不会对其他主节点之间变化的传播造成影响。各节点之间变化的传播,既可以以基于事件的方式立即传播,也可以在某个特定的时间点,如在网络空闲时(如晚上)传播。在传播变化时,如果其中的一个远端系统没有准备好,传播变化就会保存在其本地队列中,等到系统准备好以后再执行。


4 对称复制模型

这些模型都是基本的复制模型,企业可以根据自己的实际情况混合使用这些物理模型,即可以把这三种复制模型组合起来。每一种基本的复制模型,都可以使用同步复制、异步复制甚至异构数据复制。根据所允许的数据延迟的程度和是否可以修改复制的数据,以及企业的组织结构,选择合适的复制类型和合适的物理复制模型,通过各种组合,可以满足企业经营的实际需要。

3、复制的管理和监测

  DM复制管理器是DM提供的一个图形界面的复制管理工具,通过该工具可以配置、管理和检测整个的复制环境。使用DM的数据复制管理器可以执行许多任务,包括创建、修改和删除复制,查看到复制进程的各种状态、主/从服务器、复制对象等,可以配置和管理复制进程,解决在复制进程中产生的各种问题,并根据策略自动或手工快速地将应用进行切换,确保复制数据的正常进行。在创建一个新的复制时,可以指定复制的类型、异步/快照复制的调度要求、指定将要复制的表等。要注意的是,一个复制不能分散在多个数据库中,一个复制只能包括一个数据库中的数据,不能复制系统表,而且要复制的表中应该有主键。

三、在应用中选择合适的数据复制方案

在接下来的部分,将主要介绍如何在实际应用中充分利用数据复制功能来提高达梦数据库管理系统的可靠性、性能以及实现数据的分布与集中。

对于每个不同的应用环境,都可以采用合适的数据复制方案来提高系统的可靠性。使用达梦数据库过程中可以采纳的典型数据复制方案包括基于存储设备的数据复制方案、基于文件系统的第三方通用数据复制方案以及达梦数据库提供的各种数据复制方案。对于企业而言,选择何种数据复制方案,主要取决于性能要求、业务关键程度(是否需要同步实时复制)以及费用,用户可以根据实际需要进行合理选择。

1、基于存储设备的数据复制方案

基于存储设备的数据复制,即指能存储系统的远程镜像,属于企业级存储系统功能,这种数据复制在存储系统内部实现,与主机无关。

该方案的好处是:在主机上的资源占用很小,能在业务运行需要的情况下,保持I/O的响应,支持同步实时复制,能够保证事务的ACID特性。另外,该数据复制方案与应用无关,可以支持任何类型的软件系统,包括对达梦数据库的支持。

该方案的主要问题是:首先,受通信链路的影响大,由于关系到每个I/O的响应时间,如果条件不好,带宽不够,则只能异步;其次,存储复制通常价格昂贵,需要许多专用硬件;另外,这种复制只能在同种阵列间进行,如果主节点存在坏块,会导致坏块的传播问题。

2、基于文件系统的第三方通用数据复制方案

许多第三方软件厂商(非数据库厂商)基于文件/目录进行复制,可把数据定期地、在线地复制到目的地的机器上。

该方案的优点是:与应用(尤其数据库应用)结合较紧,具有配置灵活、价格低等特征,能够支持包括达梦数据库在内的各种软件。

该方案的缺点是:主机上资源占用太大,复制的压力太大。一个大型系统,如果既要保证系统能正常运行,又要做大量的复制和备份工作,成本太高。而且任何一笔交易,要把它实时地发送到远程站点,都不能做到同步,只能做到异步,即定期地把累积数据成批发送。然而,对数据库应用来说,异步不能保证数据库的一致性,容易造成数据库瘫痪。

目前,能够提供的第三方数据复制的产品有:EMC公司的SymmetrixSRDFCLARiiONMirrorViewIBM公司ESSPPRCHDSRemote CopyVeritas公司的ReplicatorSUN公司的Data Replicator等,这些软件都能够对达梦数据库提供良好的支持。

3、达梦数据库提供的数据复制解决方案

前面的两种解决方案虽然具有很好的通用性,但是都无法解决坏块的传播问题。达梦数据库提供的多种数据复制解决方案,不仅拥有其他数据复制解决方案的优点,还拥有其他解决方案所不能提供的功能,并且可以有效避免其他解决方案可能产生的问题。

总体说来,达梦数据库提供的数据复制解决方案具有如下特点:

DM的数据复制具有下列特点:

l         极好的适应性:达梦数据库的数据复制功能可以用于当前流行的各种软、硬件平台,并且支持在异构数据库之间进行数据复制。

l         满足事务的ACID特性:达梦数据库的所有复制功能都是基于事务进行的,因此可以报纸数据的原子性、一致性、隔离性和持久性。

l         支持多种数据复制方式,包括同步/异步数据复制、同构/异构数据库之间的数据复制,可以实时或者定期将主服务器上的数据完全复制到从服务器上。

l         支持多种数据复制模型:包括单主复制、多主复制和对称复制,在复制过程中,可以只复制变化了的数据,未改变的数据不必复制。

l         支持异构数据库之间的数据复制:同构数据复制采用达梦专有接口,只支持达梦数据库之间的数据复制,而异构数据复制通过使用JDBC标准接口,为不同类型的数据库之间的数据复制也提供了高校的解决方案。

l         高性价比:达梦的数据复制功能集成在达梦数据库中,不需要用户单独为数据复制功能支付费用,性价比明显优于其他同类产品/解决方案。

l         高安全性:由于采用了加密机制,可以有效避免存放、传输过程中可能产生的数据安全问题,提高了系统的安全性。

l         有效避免坏块传播:达梦数据库的数据复制全部都是基于事务的逻辑日志来进行,因此一个节点上的坏数据库块不会被复制传播到其他的节点,有效避免基于存储设备的数据复制和第三方基于文件系统的数据复制方案的坏块传播问题。

l         完善的业务持续和灾难恢复方案:通过将达梦数据库的集群功能和数据复制相结合,达梦数据库提供了完善的业务持续和灾难恢复方案,包括诸如网络故障导致工作停工、集群主节点停机、集群双节点停机、数据库宕机等特定情况的解决方案,保证了企业关键任务交易数据的持续访问,提供了对业务持续性的高度支持。

l         资源消耗非常少:达梦数据库的复制操作只针对数据的改变,并且是基于逻辑日志的,因此将对源数据库系统、源操作系统和网络的影响最小化。

l         从数据库可以灵活配置:在创建数据复制的过程中,可以指定从数据库的冲突解决方法、是否允许修改等。通过配置使得接收数据的站点上可以自主地改变复制过的数据,还可以产生类似于生产系统的模拟环境,可以直接用于应用程序的测试、开发和部署,可以访问和进行生产系统的各种服务。

l         提供了图形化的复制管理和监控工具:达梦数据库为数据复制提供了图形化复制管理工具,可以方便地创建、修改和删除复制,还提供了复制监测工具,可以监测复制活动,包括复制状态、主/从节点状态等,方便用户进行管理。

由于达梦数据库提供了多种高可用的数据复制技术,可以将这些复制技术进行各种合理组合,形成各种解决方案。下面提供采用达梦数据库的数据复制功能的典型应用环境:

1数据容灾

由于数据库中往往积累了大量的数据,一旦数据文件出现问题,后果将不堪设想。虽然各数据库提供了备份的手段,但是往往与生产数据有较长的时间间隔,还是会导致数据的丢失,另外,基于存储设备/文件系统的数据复制方案又无法解决坏块的传播问题,因此,要提高数据库的可靠性,采取数据复制方案是一种有效、安全、可靠的手段。

如果系统对实时性要求很高,网络环境也很稳定,带宽足够,并且系统的CPU、内存等资源还有部分空闲,则可以考虑采用同步复制的方法来提高系统的可靠性。因为同步复制具有实时性特点,可以保证数据库的ACID特性,系统出现故障时还能够保持远程数据与本地数据完全同步,不会出现数据的丢失,通过简单的切换(人工/自动)即可让系统继续正常运行。

当系统的实时性要求不高,网络环境不是很好时,或者系统的CPU等资源已经基本耗尽,则可以考虑采用异步数据复制的方式来提高数据库的可靠性。通过对复制进行配置,可以设置异步复制定期进行。一般来说,可以选择在系统业务量最小的时候进行异步数据复制,这样可以对系统的性能影响降低到最小的程度。

2)负载均衡

在某些应用环境中,对某些表可能存在大量的查询操作。通过采用数据复制的方法,将该表的数据分发到多个节点,可以让其他节点承担部分查询任务,从而提高系统的性能。

达梦数据库提供的2种集群方案均可以和数据复制有效地进行结合,提高系统的整体性能。达梦数据库的集群方案可以自动判断哪些数据在哪些节点上存在,并且根据各节点当前的负载大小,自动选择其中的一个节点进行数据处理。当然,用户也可以不采用集群功能,直接在应用系统中将对这些表的查询请求发送给其他节点,减轻主节点的负担,实现一定程度的负载均衡功能。

3)维护数据仓库

   我们知道,在一个典型的分布式商业应用中经常需要把各地区的数据汇总到总部的数据仓库中,一方面可以作为一种备份方式,另一方面也方便总部进行决策分析。由于数据仓库通常是与生产数据相分离的,这使得它们适合做各种类型的查询,而不会影响生产应用的性能。

达梦数据库的多种数据复制机制为维护数据仓库提供了极大的便利:首先,通过同步/异步数据复制,能够自动将数据汇总到数据仓库,避免手工进行数据汇总;其次,达梦数据库的异构数据复制功能可以将各种大型关系数据库管理系统中的数据复制到单一的数据库中,方便数据仓库的维护;最后,使用数据复制所提供的数据过滤功能,可以减少数据仓库中无用的数据,提高基于数据仓库进行决策分析的效率。

4数据的分布与集中

在一个典型的含有地市、省、部等多级数据中心的应用中,各地市数据库负责处理各自的生产数据,而各省则需要将各地市的生产数据定期汇总,同时还要将部分公共数据分发给下属各地市,以提高地市处理系统性能;同样,各省的数据也要定期或者实时汇总到部级数据中心,以供决策分析所用,同时,部级数据中心也需要将部分公共数据分发给省级数据中心,以提高省一级应用的性能。这些数据分发与集中的需求极大地促进了数据库的数据复制功能的实现和完善。

前面提到的数据容灾、负载均衡、维护数据仓库等应用情形也都需要进行数据的分发/汇总操作。通过将数据分发给多个节点,可以实现数据容灾、负载均衡,通过将数据汇总到数据仓库,可以为决策支持提供数据来源。可以说,正是数据复制提供的数据分布和集中的功能,使得数据复制技术得到了广泛的应用。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值