数据库实时同步技术解决方案
一、 前 言
随着企业的不断发展,企业信息化的不断深入,企业内部存在着各种各样的异构软、硬件平台,形成了分布式异构数据源。当企业各应用系统间需要进行数据交流时,其效率及准确性、及时性必然受到影响。为了便于信息资源的统一管理及综合利用,保障各业务部门的业务需求及协调工作,常常涉及到相关数据库数据实时同步处理。基于数据库的各类应用系统层出不穷,可能涉及到包括ACCESS、SQLSERVER、ORACLE、DB2、MYSQL等数据库。目前国内外几家大型的数据库厂商提出的异构数据库复制方案主要有:Oracle的透明网关技术,IBM的CCD表(一致变化数据表)方案,微软公司的出版者/订阅等方案。但由于上述系统致力于解决异构数据库间复杂的交互操作,过于大而全而且费用较高,并不符合一些中小企业的实际需求。
本文结合企业的实际应用实践经验,根据不同的应用类型,给出了相应的数据库实时同步应用的具体解决方案,主要包括:
(1) SQLSERVER 到SQLSERVER 同步方案 (2) ORACLE 到 SQLSERVER 同步方案
(3) ACCESS 到SQLSERVER/ORACLE 同步方案
二、 异构数据库
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库的异构性主要体现在以下几个方面: 1、计算机体系结构的异构
各数据库可以分别运行在大型机、小型机、工作站、PC嵌入式系统中。 2、基础操作系统的异构
各个数据库系统的基础操作系统可以是Unix、Windows NT、 Linux等。
3、DMBS本身的异构
可以是同为关系型数据库系统的Oracle、 SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。
三、 数据库同步技术
对于异构数据库系统,实现数据共享应当达到两点:一是实现数据库转换;二是实现数据的透明访问。所谓透明访问,就是在异构数据系统中用户可以将异构分布式数据库系统看成普通的分布式数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样。
但目前还没有一种广泛使用的数据定义模型和数据查询语言,实现数据的透明访问可以采用多对一转换、双向的中间件等技术。开放式数据库互连(Open DataBase Connectivity,简称ODBC)是一种用来在相关或不相关的数据库管理系统中存取数据的标准应用程序接口(API)。ODBC为应用程序提供了一套高层调用接口规范和基于动态链接库的运行支持环境。目前,常用的数据库应用开发的前端工具如Power Builder、 Delphi等都通过开放数据库互联(ODBC)接口来连接各种数据库系统。而多数数据库管理系统(如:Oracle、Sybase、SQL Server等)都提供了相应的ODBC驱动程序,使数据库系统具有很好的开放性。ODBC接口的最大优点是其互操作能力,理想情况下,每个驱动程序和数据源应支持完全相同的ODBC函数调用和SQL语句,使得ODBC应用程序可以操作所有的数据库系统。然而,实际上不同的数据库对SQL语法的支持程度各不相同,因此,ODBC规范定义了驱动程序的一致性级别,ODBC API的一致性确定了应用程序所能调用的ODBC函数种类。
数据库同步是在两个不同的数据库之间进行数据交换,以使得任何一个数据库的改变,会以同样的方式出现在另一个数据库里。数据库同步可以是单向的,也可以是双向的。单向同步也叫主从同步,也就是说,其中的一个数据库是主数
据库,另一个数据库是从数据库。只有主数据库的改变可以被复制到从数据库里去,从数据库是被动的。
使用数据库同步技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。同步技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。
图1 数据库同步示意图
目前国内外几家大型的数据库厂商提出的异构数据库复制方案主要有:Oracle的透明网关技术,IBM的CCD表(一致变化数据表)方案,微软公司的出版者/订阅者方案。国外的如土耳其中东科技大学的MIND系统,美国密歇根-迪尔波恩大学、斯坦福大学的TSUNMMIS项目,国内的如中关村科技软件有限公司、华中科技大学的Panorama系统都有过类似系统的研究。但是由于上述系统致力于解决异构数据库间复杂的交互操作,大而全,并不符合一些中小企业的需求,如IBM的CCD表方案实现复杂且CD表占用资源较多维护费用高昂,微软公司的出版者/订阅者方案只能在NT运行等。而其它的系统大多都存在此类问题。
四、 局域网数据同步解决方案
(一) .SQLSERVER 到SQLSERVER同步复制
SQLSERVER 同类数据库之间实现同步,可直接参照Microsoft 的发布/订阅模式。具体方法步骤如下:
(1) SQL复制的基本元素包括
出版服务器、订阅服务器、分发服务器、出版物、文章。 (2) SQL复制的工作原理
SQLSERVER主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。 (3) SQLSERVER复制技术类型
SQLSERVER提供了三种复制技术,分别是:1、快照复制/2、事务复制/3、合并复制。
(4)发布/订阅方案