一、概述 |
由于对分布式数据环境需求的不断增长,越来越多的应用提出了数据复制的需求。随着DM的发布,达梦数据库也提供了全新的数据复制功能。这种新功能是随着客户要求的高可靠性、高性能以及数据集中的需求而出现的。对于数据库来说,高可靠性是指数据库管理系统能够7*24小时不间断地为各种应用提供数据服务,高性能是指高事务吞吐量和低响应时间,数据集中和分发则是指能够将地理上分布的各数据库中的数据汇集到数据中心以及将数据中心的数据分发给地理上分布的各个数据库。 |
DM的数据复制功能可以有效地提升达梦数据库的可靠性,它依赖于分布式数据库技术,但同时可以提供分布式数据库所不具备的一些功能特性,由于在存取数据时有可选的数据副本,因此可以改进系统的性能和保护应用的可用性。通过使用DM数据库的复制技术可以实现集中和自治相结合的控制机制,可大大提高整个分布式数据库系统的可靠性和响应速度。达梦数据库的数据复制功能可以广泛应用于如下领域: |
●数据容灾。由于数据库中积累了大量的关键数据,特别是对一些关键应用,必须让数据库系统能够持续工作。目前业界提供了丰富的数据复制技术的硬件和软件实现,可以有效解决业务连续性的问题,具备高度的抗灾能力。 |
●负载均衡。通过数据复制的数据分发功能,可以在某些应用程序中起到负载均衡的功能。如在某个应用中对一个表有大量的查询操作,通过数据复制将该表的数据分发到多个节点,可以让其他节点承担部分负载,提高系统的性能。 |
●维护数据仓库。这是目前复制功能最常见的用法之一。数据仓库与生产数据是分离的,这使得它们适合特定查询,而不会影响生产应用的性能。 |
●数据的分布与集中。为了实现数据容灾、负载均衡、维护数据仓库等功能,达梦数据库的数据复制实现了单主多从、多主多从以及对称复制等多种数据分布和集中的方式,为应用提供了极大的便利。 |
二、主要技术 |
数据复制就是将处于一个分布式环境中的数据库里面的数据拷贝到该环境中另一个不同的数据库中的过程。数据复制不仅可以提高系统的可靠性,还可以提升性能,并进行数据集中。根据不同的数据复制划分方法,DM不仅支持同步/异步数据复制方式,还支持同构/异构数据库之间的数据复制,支持多种数据复制模型,并内置可选的数据冲突解决方案,另外,DM还提供了功能强大的复制监测和管理工具,提供了高度可用的数据复制解决方案。 |
1、基本概念和原理 |
在分布式计算环境中需要考虑的主要问题之一就是对于不同的应用需求是采用实时存取远程数据还是采用延迟存取远程数据。这对于数据复制来讲就是采取同步数据复制方案还是异步数据复制方案。对于实际的商业问题,必须权衡这两种技术的利弊最终选择最佳的解决方案,有些问题选用同步技术比较适合,也有一些问题采用异步技术是比较好的解决方案,还有一些问题必须综合这两种技术。 |
同步数据复制 |
同步数据复制指通过将本地生产环境中的数据以完全同步的方式复制到异地,每一个本地交易均需等待远程复制结束才算完成。在同步数据复制中,复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。这种技术适用于那些对于实时性要求较高的商业应用中。 |
![]() |
图1 数据复制原理
|
图1是一个典型的3层结构的应用,在不启用同步复制功能时,系统处理用户请求的过程为①->②->③->④。①表示用户向WEB服务器发出请求;②表示WEB服务器分析用户请求后,由应用服务器执行应用逻辑,并向数据库服务器发出请求;③表示数据库处理数据请求,然后将处理的结果返回给应用服务器;④表示应用服务器接收到数据库服务器处理结果后,转交给WEB服务器,由WEB服务器对相关数据进行封装,并转发给最终用户。如果启用了同步复制功能,则系统的执行流程变成了①->②->⑤->⑥->③->④,其中⑤表示在主数据库写完事务日志后,将需要复制的相关数据的请求发给从数据库,⑥表示从数据库处理完毕复制任务后,通知主数据库复制成功或者失败,如果复制成功,主数据库向客户端返回事务成功的消息和相关数据,如果复制失败,则整个事务被回滚,主数据库通知客户端事务执行失败。 |
从上面的流程我们可以看到,当采用同步复制方案的表发生变化时,达梦数据库会确保这种变化能够成功地作用在本地表和从数据库中的复制表,如果任何一个数据库执行失败,则整个事务会被成功回滚。同步复制具有实时性特点,可以保证数据的完整性和一致性,灾难发生时远端数据与本地数据完全同步。但这种方式会受到数据传输距离的限制,并且受网络带宽影响较大,如果系统存在网络存取速度很慢这样的问题,响应时间就会很慢。同步复制在网络的稳定性比较高的情况下是可行的,可以保证复制节点之间的复制数据一直保持同步。 |
异步数据复制 |
异步数据复制则是指将本地生产环境中的数据定期复制到异地,每一本地交易无需等待远程复制的结束就可以完成。因此异步数据复制环境下所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将经过一定的时间间隔并在不同的事务中被传播和应用到其他所有复制节点。 |
如图1所示,对于异步复制,系统处理用户请求的过程仍然为①->②->③->④,其中的③与没有启用数据复制功能时略有差别。当启用异步复制时,在步骤③中还会写逻辑日志,供异步复制的代理程序定期读取。另外,异步复制代理程序还会定期执行⑤->⑥两个步骤。对于异步复制来说,⑤用于读取主数据库中的逻辑日志,将其转化为数据更新操作,发送给从数据库,⑥则是从数据库通知主数据库异步复制任务处理完毕,等待主数据库继续发送异步数据复制请求。 |
异步复制特征是源数据与目标数据之间并不是在任何时刻都保持完全一致,它们之间有一个延时。主数据库的变化,不是立刻反应到从数据库中,而是把产生变化的事务写入一个专门的逻辑日志中。当这些事务累计到设定值时,由复制代理程序把事务发送给从服务器。从服务器再执行这些事务来保持源数据与拷贝数据的一致。当因网络或其他问题使复制不能完成时,源数据的变化会一直保存在主数据库中直到问题解决再自动把所有保存的事务送出,并且复制两端的数据仍保持一致。 |
异步复制不影响本地交易,传输距离长,对网络环境要求低,具有很高的可用性和很短的响应时间,但异地数据比本地数据略有延迟。 |
除此之外,依据是否支持不同数据库之间进行数据复制,又可以划分为同构数据复制和异构数据复制。 |
同构数据复制 |
同构数据复制指采用达梦数据库的专有接口,进行达梦数据库之间的数据复制。同构数据复制也支持前面提到的同步复制和异步复制功能。当只进行达梦数据库之间的数据复制时,建议采用同构数据复制方案,因为相对异构数据复制来说,由于采用了专有接口,复制性能更高。 |
异构数据复制 |
在一个典型的大型分布式应用系统中,通常使用了多种数据库管理系统。在这种异构数据库环境中复制数据是用户的现实要求。达梦数据库增加了在异构数据库环境中复制数据的功能。 |
JDBC是一种通用的数据库编程界面,它提供了访问关系型数据库的方法。通过使用JDBC,达梦数据库提供了在异构数据库环境中复制数据的高效解决方案。DM支持的异构数据库包括Oracle、DB2、SQL Server等大型通用数据库管理系统和其他提供JDBC驱动程序的数据库,为异构数据库环境中复制数据提供了极大的便利。 |
基于SQL的异构数据复制,数据库的更改可以被捕捉,并临时地存储在称作关系中间表(staging table)的关系表中。然后,从目标系统上的一个客户接口可以读取这些关系中间表,并将它们应用于目标表。那些以非DM数据库作为源或目标的场景,SQL Replication 可能仍是目前的最佳选择。 |
数据过滤 |
达梦数据库的数据复制支持三种过滤数据的方法,即水平过滤、垂直过滤和水平垂直混合过滤。水平过滤就是包含了表中的一部分列,是列的子集。这时只有可以复制的列中的数据才会出现在从数据库中。垂直过滤就是包含了表中的一部分行,是行的子集。当使用垂直过滤时,只有这一部分行中的数据才可以传送到从数据库中。另外,还可以采取水平垂直混合过滤的方法,即通过选择表中的一部分列和一部分行,复制表中的一部分数据。 |
2、数据复制模型 |
数据复制模型就是数据复制设计的物理实现,一般有三种基本的复制模型,包括单主复制、多主复制以及对称复制。 |
1.单主复制 |
单主复制就是指把一个服务器定义为主服务器,把一个或者多个服务器定义为从服务器,由主服务器上负责把被复制的数据复制给各从服务器,其结构如图2所示。这种复制模型是最基本的复制模型,也是常用的一种结构,适用于将企业的中心数据信息分散传输给各个分支机构等环境。 |
![]() |
图2 单主复制模型
|
2.多主复制 |
多主复制就是指把多个服务器定义为主服务器,把一个或者多个服务器定义为从服务器,把多个主服务器上的数据复制给各从服务器,其结构如图3所示,适用于将分支机构的数据信息传输给企业的中心等环境,各主服务器拥有本地数据,而从节点也就是数据中心拥有全部数据。在这种结构中要注意,由于多个主服务器可以向同一个复制表中写数据,因此这些数据有可能被覆盖,可以考虑通过水平过滤这些数据或者是采用某种冲突解决策略来解决这种问题。 |
![]() |
图3 多主复制模型
|
3.对称复制 |
对称复制就是指所有的节点既是主服务器,又同时是从服务器,起到双重的作用,如图4所示。该结构非常接近于分布式/集群数据处理环境。它允许所有节点对复制表都有更新操作的权利,任何一个节点上的复制表的更新都会被传播并被直接应用到其他所有主表。一个主节点出现问题,不会对其他主节点之间变化的传播造成影响。各节点之间变化的传播,既可以以基于事件的方式立即传播,也可以在某个特定的时间点,如在网络空闲时(如晚上)传播。在传播变化时,如果其中的一个远端系统没有准备好,传播变化就会保存在其本地队列中,等到系统准备好以后再执行。 |
![]() |
图4 对称复制模型
|
这些模型都是基本的复制模型,企业可以根据自己的实际情况混合使用这些物理模型,即可以把这三种复制模型组合起来。每一种基本的复制模型,都可以使用同步复制、异步复制甚至异构数据复制。根据所允许的数据延迟的程度和是否可以修改复制的数据,以及企业的组织结构,选择合适的复制类型和合适的物理复制模型,通过各种组合,可以满足企业经营的实际需要。 |
3、复制的管理和监测 |
DM复制管理器是DM提供的一个图形界面的复制管理工具,通过该工具可以配置、管理和检测整个的复制环境。使用DM的数据复制管理器可以执行许多任务,包括创建、修改和删除复制,查看到复制进程的各种状态、主/从服务器、复制对象等,可以配置和管理复制进程,解决在复制进程中产生的各种问题,并根据策略自动或手工快速地将应用进行切换,确保复制数据的正常进行。在创建一个新的复制时,可以指定复制的类型、异步/快照复制的调度要求、指定将要复制的表等。要注意的是,一个复制不能分散在多个数据库中,一个复制只能包括一个数据库中的数据,不能复制系统表,而且要复制的表中应该有主键。 |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23392679/viewspace-627918/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23392679/viewspace-627918/