所谓数据复制,就是将数据库中的数据资源复制到一个或多个不同的物理站点上。数据复制技术可以有效地保证目标数据库与源数据库的中数据的一致性。 目前,很多领域都会用到数据通信复制技术,如分布对象系统、移动计算和分布式数据库系统等。
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复制管理的核。其工作原理是智能地把部分相关数据放置在离科学应用程序最近的位置。复制管理服务的功能主要包括:注册新的拷贝到复制目录中以、创建全部或部分文件集合的新拷贝、允许用户查询复制目录来找到部分或全部文件集合的拷贝。