APP下载

浅析分布式数据库同步技术理论

2009-07-02郭哲锋

消费导刊 2009年11期
关键词:触发器

郭哲锋

[摘 要]如何高效、安全地保持数据库之间数据同步是当前数据库技术研究热点问题。本文对于分布式数据库系统同步传输技术,通过数据库同步机制研究解决了多级数据库信息交换过程中上下级数据库数据不一致问题。

[关键词]分布式数据库 同步传输 MobiLink 触发器

随着企业的不断发展和壮大,企业的各子部门地处于不同区域的情况越来越多,为了使企业异地使用相同的数据,大多数企业都采用了数据库提供的同步技术来解决这一问题,但该方法操作难度较大,而数据库提供的同步技术也会因网络、电力等原因造成时间同步无法进行,引起数据的丢失等[1]。本文就如何高效、安全地保持分布式数据库之间数据同步进行研究,以期解决以上问题。

一、分布式数据库同步技术理论概述

(一)分布式数据库概述及特点

分布式数据库(Distributed Database, DDB)是计算机网络环境中各场地(Site)或结点(Node)上数据库的逻辑集合。一般称传统方式的数据库为集中式数据库(Centralized Database, CDB);称分布式数据库系统中的各场地数据库为局部数据库(Local Database, LDB),是物理的数据库;称分布式数据库为全局数据库(Global Database, GDB),是逻辑的数据库。分布式数据库具有分布性和逻辑协调性。分布性是指数据不是存放在单一场地为单个计算机配置的存储设备上,而是按全局需要将数据划分成一定结构的数据子集,分散地存储在各个场地上;逻辑协调性是指各场地上的数据子集,相互间由严密的约束规则加以限定而在逻辑上是一个整体。

(二)数据库同步技术

通过交换每个成员中所有已更新的记录和对象, 来更新一个副本集的两个成员的过程。当每个副本集内的更改都相互应用于另一个副本集时, 两个副本集成员就实现了同步。数据库同步又分三种[2]:直接同步,即用于在直接连接到局域网的副本之间对数据进行同步的方法, 可通过共享的网络;文件夹使用间接同步,即一种用于断开连接环境中( 如带着便携式计算机外出时) 的同步方法,必须用“复制管理器”来配置间接同步;Internet 同步,用于将已配置了 Internet 服务器的脱机环境中的副本同步。必须使用“复制管理器”来配置 Internet 同步。

(三)缓冲池技术

一个缓冲池是与单个数据库相关联的,可以被多个表空间使用。当考虑将缓冲池用于一个或多个表空间时,必须保证表空间页大小和缓冲池页大小对于缓冲池所“服务”的所有表空间而言都是一样的。一个表空间只能使用一个缓冲池。数据库连接缓冲池,其实就是保存数据库连接的一个集合。需要数据库连接缓冲池是因为每次对数据库的开闭都是非常耗时耗资源的,如果并发请求过大,可能就导致系统反应缓慢甚至造成崩溃。

(四) 触发器实现算法简介

当前数据库应用的一个普遍要求是数据库管理系统能够在一些数据库相关事件发生时触发预先定义的操作,实现信息管理的自动化,因此引进了触发器机制。触发器可以增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,并执行一定的数据操作。触发器机制实现主要涉及触发事件的检测以及触发条件的判决等关键技术问题,以及对触发器的编译存储和调用执行等具体操作。

触发器事件检测机制包括对事件的检测和存储,是实现触发器的关键。触发器的条件判决机制是触发器的核心,根据 SQL99 标准的定义,可以将触发器分为前触发、约束判定和后触发三种类型。触发器的更新操作是对一个触发器进行编译后,替换已存在的作用在同一个表上的同名触发器,基本操作与触发器的创建是一致的;触发器的删除操作步骤主要是在数据字典中对指定的触发器进行查询并删除。

二、需求分析

(一)系统功能

分布式数据库同步系统主要完成对于网络中数据库系统的数据同步操作及相关设置,通过编写程序实现网络中对于 Oracle,MS SQL Sever 等数据库之间数据的同步操作。利用缓冲池技术提供数据交换的安全保障,确保数据在同步过程中保持数据的一致性。采用标准的数据通讯方式,以及标准的同步交换协议。实现主数据库对结点Oracle 数据库,MS SQL Sever 数据库数据的同步。触发同步机制,使得主数据库与结点数据库数据保持一致性。 定制对异构数据库自动同步操作,可以实现按预定规则实现定时更新数据库数据。

(二)总体设计

分布式数据库数据同步系统由变化捕获、日志还原、同步触发、通讯和数据更新等 5 个模块组成。变化捕获模块负责捕获变化并记录日志;日志还原模块把变更操作还原成数据库语句;同步触发模块根据同步策略激活通讯发送;通讯模块负责数据的发送与接收;数据更新模块负责把传送过来的数据更新到目标数据库。

对于整个系统功能模块来讲,分布式数据库同步系统包含五个基本功能模块:启动 ORA 同步,启动 MMS 同步,自动同步,同步 ORA,同步 SQL。(1)启动 ORA 同步,在主机数据库所在服务器启动 ORA 同步服务;(2)启动 MMS 同步,在主机数据库所在服务器启动 SQL 同步服务;(3)自动同步,在主机数据库所在服务器启动自动同步服务,使得同步工作按照预定设置的条件进行自动同步服务;(4)同步 ORA,对于网络中主机数据库与 ORA 的结点数据库进行同步工作,同步以后使得主数据库与 ORA 的结点数据库数据保持一致;(5)同步 SQL,对于网络中主机数据库与 SQL 结点数据库进行同步工作,同步以后使得主数据库与 SQL 的结点数据库数据保持一致。

三、系统设计关键技术分析

(一)系统配置介绍

通用数据传输平台基于选定的 MobiLink 技术作为软件开发的技术支持,使用Sybase ASA8.0 作为 MobiLink 的客户端与同步服务器。通用数据传输平台系统具有传输对象的配置与定义功能,采用基于传输缓冲池的数据同步传输与日志传输技术,以拨号网络作为主要应用环境,同时支持实时网络传输环境。通用数据传输平台体现了通用性、高效性、安全性和稳定性。

(二)MobiLink 技术概述

MobiLink 技术一种基于发布/订阅方式的异步消息中间件技术[3]。主要是以MobiLink 客户端在建立 MobiLink 用户的基础上完成单向的同步发布/同步预订,MobiLink 同步服务器只需要处于启动的状态,使 MobiLink 客户端通过 MobiLink 同步服务器来进行同步。

1.MobiLink 的同步过程技术

同步会话是 MobiLink 客户端和同步服务器之间的双向数据交换过程,始终由客户端开始进行同步过程。在此过程中,客户端必须建立并维护与同步服务器的连接。如果成功,此会话将使远程数据库和统一数据库保持相互一致的状态。同步过程中包括上载和下载两部分。 对于数据行的上载,MobiLink 客户端准备并发送一个上载流,它包含从上次同步后在 MobiLink 客户端经过更新、插入或删除的所有行的列表。类似地,对于数据行的下载,MobiLink 同步服务器准备并发送一个下载流,它包含插入、更新和删除的列表。

2.MobiLink 的同步脚本

MobiLink 同步逻辑由存储在统一数据库中的脚本组成,这些脚本可以是单个语句,也可以是存储过程调用。在同步过程中,MobiLink 同步服务器将读取这些脚本,并对统一数据库执行这些脚本。脚本为您提供了在同步过程中的不同时间点执行任务的机会。您可以使用 Sybase Central,也可以使用存储过程将脚本添加到统一数据库中。

每个脚本对应于同步过程中的一个特定事件。仅当某个操作必须发生时才编写脚本。所有不必要的事件都无需定义。同步过程的两个主要部分是处理上载的信息和准各要下载的行。MobiLink同步服务器将在首次需要某一校本时读取它进行准各,只读取和准备一次。只要一个事件被激活,便执行与其关联的脚本。大多数同步脚本都接受来自MobiLink同步服务器的参数您可以在脚本中使用这些参数,通过在脚本中放置问号即可做到这一点。脚本是以组的方式进行组织的,这些组被称为脚本版本。通过指定特定的版本,MobiLink 客户端可以选择使用哪一组同步脚本来处理上载流及准备下载流。

3.MobiLink 的同步方式

MobiLink 的同步方式可以分为两种[4]:1.基于时间戳的同步。时间戳方法是可以进行高效的同步的最实用的通用技术。此项技术涉及跟踪每个用户上次进行同步的时间,并使用此信息控制下载到每个远程数据库的行。MobiLink保留了一个用以说明每个 MobiLink 用户上一次下载数据的时间的时间戳值。该值被称为上次下载的时间戳。上次下载的时间戳将作为一个参数被提供给许多事件,该时间戳还可以在同步脚本中使用。2.快照同步。基于时间戳的同步适合于大多数同步。不过,有时候可能需要更新数据快照。表的快照同步是指完全下载表中的所有相关行,而不考虑这些行以前是否已经下载。这是最简单的同步方法,但会引起大量的不必要的数据集交换,从而导致性能下降。可以使用快照同步下载表中的所有行,或者将此方法与在远程数据库之间对行进行分区中描述的行分区方法结合使用。快照同步最适合用于同时具有以下两种特征的表:(1)行数相对较少:当表中行数比较少时,下载所有行所产生的开销也会相对较小。(2)行信息经常更改:当表中的大多数行频繁进行更改时,采用显式排除上次同步后未发生更改的行的方法就没有太大的必要。

(三)数据库设计

分布式数据同步系统采用缓冲池技术来确保数据传输的安全性和一致性,根据系统分析:(1)主机数据库主要由三部分组成:用户信息表,本地数据库表,传输缓冲池表;(2)子机数据库主要有两部分组成:本地数据库表和传输缓冲池表。

(四)数据库同步过程分析

数据库同步系统同步数据总体同步过程如下:(1)用户登陆,根据用户信息表进行登陆操作;(2)启动同步,针对不同的数据库启动对应的同步服务;(3)同步数据,同步操作开始;(4)比较缓冲池数据,如果相同说明双方数据一致,同步结束;如果不同则更新缓冲池当中的数据,直到两个缓冲池当中的数据再次达到一致;(5)更新缓冲池数据;(6)更新本地数据库数据;(7)同步结束。

四、结论

随着分布式数据库广泛应用于各个行业,异构数据库海量数据传输成为计算机研究人员关注的焦点,本文研究了分布式数据库之间数据同步,采用传输缓冲池同步技术,确保发送数据库与接收数据库数据的一致性。

参考文献

[1]宋俊苏。分布式数据库在高职院校办公自动化管理系统中的应用[J]电脑知识与技术, 2009,08

[2]邵佩英。分布式数据库系统及其应用(第二版)北京:科学出版社,2005:10~11

[3]Richard Staehli,Frank Eliassen,Sten Amundsen。Designing Adaptive Middleware for Reuse[A]Middleware 2004 Companion[C]Toronto: IFIP International Federation for Information Processing, 2004: pp.153~157

[4]马新娜,牛存良,石玉晶等。异构数据库互动中间件的设计与应用。微机发展,2004(4)

猜你喜欢

触发器
一种功能可配置的可逆触发器设计
Multisim13仿真软件在触发器中的应用分析
浅谈时序逻辑电路的成长记忆
触发器在酒店管理系统中的应用
主从JK触发器逻辑功能分析
使用触发器,强化安全性
D触发器的典型应用电路及其仿真分析
几种常见触发器工作方式的讨论
对触发器逻辑功能转换的分析
触发器逻辑功能转换的两种方法