摘要:所谓数据复制,就是将数据库中的数据资源复制到一个或多个不同的物理站点上。数据复制技术可以有效地保证目标数据库与源数据库的中数据的一致性。 目前,很多领域都会用到数据复制技术,如分布对象系统、移动计算和分布式数据库系统等。
关键词:网格;数据传输;数据复制
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)27-0045-03
Abstract: The so-called data replication, is the database in the data resources to one or more different physical sites. Data replication technology can effectively ensure the consistency of the data in the target database and the source database. At present, data replication technology is used in many fields, such as distributed object system, mobile computing and distributed database system.
Key words: grid; data transmission; data replication
1 数据复制的概念
所谓数据复制,就是将数据库中的数据资源复制到一个或多个不同的物理站点上。数据复制技术可以有效地保证目标数据库与源数据库的中数据的一致性。
1.1 访问地有效性
我们在进行数据处理里,有时候受到网络的限制无法使用广域网WAN,为了可以继续访问本地数据,我们可以采用数据复制技术。在复制时,用户可以直接在本地讯问数据,非常方便,而不用通过数据库之间的网络连接来获取用户需要的数据资源。
1.2 缩短响应时间
数据复制可以缩短数据请求的响应时间,其原因如下:
1)由于数据复制的请求是在本地服务器上进行的,不需要访问网络,所以检索速度更快。
2)在本地服务器上处理数据减轻了中心数据库服务器的负担,同时也缓解了对处理器时间的争用。
1.3 事务的完整性
确保每个数据库始终保持事务完整性是任何复制系统都面临的挑战。Replication Server 和 SQL Remote 按以下方式复制事务日志的各个部分,因此在复制期间可保持事务的完整性。
MobiLink合并多个已提交的事务中所做的更改。这些更改以单个事务的方式应用到另一数据库中。
1.4 数据的准确性
我们在数据复制时,要使整个系统中的数据保持一致,提高数据的准确性。复制系统在整个体系中将工作时所做的改变以准确无误的方式复制到其他站点上,但是不同的站点在同一时间拥有不同的数据副本。
2 数据复制的分类
在数据复制技术中,复制配置和复制类型是两个重要方面,是区别不同复制技术的主要指标。配置,指的是有多少个源服务器被复制到多少个目标服务器,包括一对一复制、一对多复制、多对一复制、多对多复制。复制类型,指的是程序如何在两个系统之间进行数据同步,一个复制解决方案可能根据计划好的时间间隔来使数据保持同步,也可以用同步复制或异步复制的方式连续进行数据复制。数据复制类型主要有以下几种:
1)同步复制
在一个同步复制环境中,为了确保目标系统上最高程度的数据整体性,数据必须在主系统完成写入之前被写入到目标系统中。一方面,同步复制使得无论何时,目标系统上的数据都与源系统数据完全相同;另一方面,同步复制也可能导致源系统的性能延迟,尤其是在两个系统间的网络连接速度比较慢的情况下,延迟问题更为严重。
2)异步复制
在异步复制时,复制软件会对数据进行排队,然后在网络可用期间在系统之间批处理地传递改变的数据,源系统在执行前不会等候目标系统的确认。为了保持数据的完整性,有些解决方案将同步和异步复制操作组合在一起:当发生通讯问题时,同步复制会转为异步复制;当通讯问题解决后,又会转回同步方式。
3)计划复制
对有些用途而言,连续的复制不是理想的方案,采用计划复制更为适宜。在这种复制方式中,变化的数据将按预先设定的时间间隔被同步复制。
数据复制技术的应用范围非常广,不同的范围内,复制的目标数据、数据复制粒度及重要技术都有很大差别。如分布数据库、分布对象和移动计算等,这些应用领域和分布式储存关系非常密切。分布数据库系统的关键技术是非常有效的数据复制技术,它可以帮助我们有效地提高数据库系统的性能,如增强系统容错能力、改善数据访问性能和实现数据系统的负载平衡等。
由于移动环境下网络带宽低、速度慢。如果采用数据复制技术,可以根据当前用户的访问需求和分布情况,进行动态数据复制。这样做的好处是:可以使移动用户就近访问并复制所需的数据,大大提高访问的性能。
3 数据网格中的数据复制技术
为了改善数据网格系统性能,我们在网络系统中大范围地使用了数据复制技术。与传统分布式系统应用领域中的复制相比,数据网格中的复制技术在复制目标、复制粒度、复制关键技术等方面表现出独特性质。数据网格系统中,采用数据复制技术的目的是为了节省网络带宽、减少系统的访问时间等。在使用数据复制技术时通过数据在网格中的流动,实现数据网格系统的性能优化,也就是根据用户的访问需求和数据网格系统的数据特征自动将数据流复制到不同的网格节点或服务器上。
3.1 在网格中数据复制的特点
数据复制技术可以多个服务器上建立数据备份,如果我们在操作过程中发现某个服务器中的数据出错,就可以使用其他服务器进行操作,这样可以提高数据的准确性和数据的可用性。数据复制技术为了提高使用效率,降低传输负载,一般都会将远程服务器中的数据复制到本地服务器,让用户就近访问并复制所需的数据,大大提高访问的性能。但是,网格中的数据复制技术与分布对象等、分布数据库中的复制技术相比,还有一些问题要注意改进。
1)在数据系统中,用户可以把数据存储为一般文件、XML文件及各类数据库文件等;
2)而在数据网格系统中,需要充分考虑网络开销,这和数据库、分布对象系统选择副本时是不同的,只在减少网络开销,才能提高使用数据的速度;
3)在数据网格系统中,由于网格环境是呈动态性的,而且数据副本的数量可达几百甚至更多,存在巨大的数据量,为了对副本进行有效管理;我们必须采用合理的动态副本创建策略才能满足要求;
4)一方面,数据网格系统中的数据量巨大,且操作频率很高,整个文件的内容会被一个操作改写。这和传统的数据库中副本同步时几个小事务的操作有着很大的不同;而另一方面,数据网格中的数据广泛分布和复制在WAN上,更加灵活,一般的保持副本一致性算法并不适用于此。
3.2 在数据网格中对复制系统的相关需求
根据网络系统特点和对数据复制技术的分析,我们在使用数据网格下的数据复制系统需要注意以下几点需求:
1)动态性:在创建副本时,复制系统可以按需动态创建副本和删除副本;
2)适应性:复制系统需要考虑各种网络问题,如本地网速、用户网速以及访问失败等多种情况;
3)安全性:在创建副本时,应保证用户数据访问的安全,不让有图谋的他人进入;
4)有效性:复制系统创建副本时必须考虑资源和时间的开销,用自己能利用的资源设计出最佳方案;
5)灵活性:复制系统能够根据操作需要,灵活创建、删除和管理副本。
3.3 数据网格复制
Globus中数据管理的另一个基本服务是复制(replica management),Globus中数据的复制管理主要是针对远程的大型数据库文件进行访问。replica的原意是指复制品,即在文件复制时要与其本身保持一致性。为了满足这个要求,在复制管理体系结构中,必须要有一个支持WAN的分布式数据库。这样就可以在对文件复制时进行修改。同时,在原子操作时对文件进行加密。
在Globus项目中没有采用复杂的分布数据库。Globus中的复制管理服务实际上没有按照“replica”的一般语义进行实现,而是对“replica”语义放宽了限制,对于文件的多个复制操作,Globus的复制服务不会主动执行任何操作来检查确保文件的一致性。而当用户在复制一个注册的逻辑集合文件时,则需要由操作来保持数据文件之间的一致性。
在分布式计算的环境中,有时会遇到计算失败,或网络问题,这就给我们的复制管理服务提出了更高的要求,可以快速从错误中回复,并保持数据的一致性。在Globus的复制管理服务功能中只能够保证注册文件的一致性,但不能保证存储在复制管理服务中信息的一致性。
Globus复制目录服务可以使科学应用程序快速地进行数据访问,它是Globus复制管理的核。其工作原理是智能地把部分相关数据放置在离科学应用程序最近的位置。复制管理服务的功能主要包括:注册新的拷贝到复制目录中以、创建全部或部分文件集合的新拷贝、允许用户查询复制目录来找到部分或全部文件集合的拷贝。
4 基于网格环境中的数据复制具体实现
在网格环境中,我们在数据复制前要对具体问题进行具体分析,做好规划与设计。这就需要我们在设计时必须确定出需要复制的数据对象、数据库站点及类型、冲突解决方案、同步方式等内容。从而设计出一套详实并能满足实际业务需求的合理方案。在进行详细的规划与设计后,我们就可以按计划实现数据复制,具体操作如下:
1)创建数据复制站点;
2)创建组对象;
3)配置合理、详实的解决冲突方案。
下面,我们举例说明相关操作。我们会设置主控站点和共享数据表各两个,采用多主控站点复制方式。
主控站点分别为处理站点(handle.world)和解释站点(explain.world);数据表分别为测区(region)和测线(line)。
1)用系统身份进行登录并访问主站点数据库。
2)为每个复制站点创建新用户,并为其授权复制管理员身份,其主要任务是负责创建并管理复制的站点,其代码如下图所示:
3)指定本站点的propagator,其主要职责是将本地的最新数据传播到其他站点上,完成任务。
4)指定本站点的receiver,其主要职责是接收其他站点上的propagator传输过来的数据,其代码如下图所示:
5)为了提高运行速度,我们需要定时清除已经加载的事务,在本例中设定每小时清除一次。这样做的目的是避免事务队列过长。
6)调度数据库链接
我们用同样的方法法创建处理站点(handle.world)和解释站点(explain.world)。创建的过程如下:首先,需要先在各个主控站点之间建立数据库链接,我们需要先建立一个公用的数据库链接,让它为其他私有数据库链接提供服务。同时,我们需要在解释站点(explain.world)上建立与处理站点(handle.world)的数据库链接。其次,我们要为每个数据库链接定义系统调度的时间。
5 解决数据复制中的冲突问题
在进行数据库系统和应用程序设计过程中,设计者会考虑到冲突的问题,在设计时进行优化操作,但是站点之间的冲突问题并不能完全避免。一旦发生冲突,就需要采用冲突解决机制来处理,从而保证各站点数据的一致性。我们可以通过以下几种方法来解决上述问题:
5.1 查看出错命令的具体内容
当出现复制冲突问题时,我们要及时了解哪些数据容易出现冲突。在系统中,静态数据很少出现冲突,发生冲突的主要是一些变化较大的动态数据。了解这一情况之后,我们要根据情况来解决冲突问题。其方法有如下几种,方法1:建立各站点间的优先次序,在数据不一致时,系统以基准站点上的数据为准;方法2:当数据不一致时,系统以某个站点上最新更新的修改为准。
虽然数据库中提供了很多解决方案来避免冲突,如针对更新冲突、删除冲突、唯一性冲突等多种冲突的解决方案。这些方案都有相应的适用范围,用户可以根据具体的业务情况来选择合适的方案来解决冲突问题。除了这些系统中的方案以外,我们还可以通过自定义方案的方法来处理冲突问题。
5.2 比较数据之间的差异
如果遇到一些查询复制出错的语句,使用人工处理同步失败时相对容易。但是当复制错误的命令很多时,就会比较麻烦,使用以上方法难以处理。这种情况下,我们一般会选择忽略失败的复制命令,然后通过比较订阅表的数据之间的差异来解决问题 。
在具体的数据复制应用中,还有许多复杂的问题亟需解决,这些问题需要我们在实际应用中继续研究,深入探索。
参考文献:
[1] 南菊松. 分布式数据库系统中数据分配算法研究[D].华中科技大学,2013.
[2] 邹钰. 浅谈网络安全策略[J].科学之友,2011(4):155.
[3] 王东喆. SharePoint数据复制系统的设计与实现[D].吉林大学,2010.
[4] 尹振鹤. 浅析网络管理技术[J].科技视界,2013(8):104.