数据库实时同步技术解决方案

上传人:宝路 文档编号:22513530 上传时间:2017-11-27 格式:DOCX 页数:31 大小:49.69KB
返回 下载 相关 举报
数据库实时同步技术解决方案_第1页
第1页 / 共31页
数据库实时同步技术解决方案_第2页
第2页 / 共31页
数据库实时同步技术解决方案_第3页
第3页 / 共31页
数据库实时同步技术解决方案_第4页
第4页 / 共31页
数据库实时同步技术解决方案_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《数据库实时同步技术解决方案》由会员分享,可在线阅读,更多相关《数据库实时同步技术解决方案(31页珍藏版)》请在金锄头文库上搜索。

1、数据库实时同步技术解决方案一、 前 言随着企业的不断发展,企业信息化的不断深入,企业内部存在着各种各样的异构软、硬件平台,形成了分布式异构数据源。当企业各应用系统间需要进行数据交流时,其效率及准确性、及时性必然受到影响。为了便于信息资源的统一管理及综合利用,保障各业务部门的业务需求及协调工作,常常涉及到相关数据库数据实时同步处理。基于数据库的各类应用系统层出不穷,可能涉及到包括 ACCESS、SQLSERVER、ORACLE、DB2、MYSQL 等数据库。目前国内外几家大型的数据库厂商提出的异构数据库复制方案主要有:Oracle 的透明网关技术,IBM 的 CCD 表(一致变化数据表)方案,微

2、软公司的出版者/ 订阅等方案。但由于上述系统致力于解决异构数据库间复杂的交互操作,过于大而全而且费用较高,并不符合一些中小企业的实际需求。本文结合企业的实际应用实践经验,根据不同的应用类型,给出了相应的数据库实时同步应用的具体解决方案,主要包括:(1) SQLSERVER 到 SQLSERVER 同步方案(2) ORACLE 到 SQLSERVER 同步方案(3) ACCESS 到 SQLSERVER/ORACLE 同步方案二、 异构数据库异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的 DMBS。异构数

3、据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库的异构性主要体现在以下几个方面:1、计算机体系结构的异构各数据库可以分别运行在大型机、小型机、工作站、PC 嵌入式系统中。2、基础操作系统的异构各个数据库系统的基础操作系统可以是 Unix、Windows NT、 Linux等。3、DMBS 本身的异构可以是同为关系型数据库系统的 Oracle、 SQL Server 等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。三、 数据库同步技术 对于异构数据库系统,实

4、现数据共享应当达到两点:一是实现数据库转换;二是实现数据的透明访问。所谓透明访问,就是在异构数据系统中用户可以将异构分布式数据库系统看成普通的分布式数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样。但目前还没有一种广泛使用的数据定义模型和数据查询语言,实现数据的透明访问可以采用多对一转换、双向的中间件等技术。开放式数据库互连(Open DataBase Connectivity,简称 ODBC)是一种用来在相关或不相关的数据库管理系统中存取数据的标准应用程序接口(API)。ODBC 为应用程序提供了一套高层调用接口规范和基于动态链接库的运行支持环境。目前,常用的数据

5、库应用开发的前端工具如 Power Builder、 Delphi 等都通过开放数据库互联(ODBC) 接口来连接各种数据库系统。而多数数据库管理系统(如:Oracle、Sybase 、SQL Server 等)都提供了相应的 ODBC 驱动程序,使数据库系统具有很好的开放性。ODBC 接口的最大优点是其互操作能力,理想情况下,每个驱动程序和数据源应支持完全相同的 ODBC 函数调用和 SQL 语句,使得 ODBC 应用程序可以操作所有的数据库系统。然而,实际上不同的数据库对 SQL 语法的支持程度各不相同,因此,ODBC 规范定义了驱动程序的一致性级别,ODBC API 的一致性确定了应用程

6、序所能调用的 ODBC 函数种类。数据库同步是在两个不同的数据库之间进行数据交换,以使得任何一个数据库的改变,会以同样的方式出现在另一个数据库里。数据库同步可以是单向的,也可以是双向的。单向同步也叫主从同步,也就是说,其中的一个数据库是主数据库,另一个数据库是从数据库。只有主数据库的改变可以被复制到从数据库里去,从数据库是被动的。使用数据库同步技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。同步技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。图 1 数据库同步示意图目前国内外几家大型的数据库厂商提出的异构数据库复制方

7、案主要有:Oracle 的透明网关技术, IBM 的 CCD 表(一致变化数据表)方案,微软公司的出版者/订阅者方案。国外的如土耳其中东科技大学的 MIND 系统,美国密歇根迪尔波恩大学、斯坦福大学的 TSUNMMIS 项目,国内的如中关村科技软件有限公司、华中科技大学的 Panorama 系统都有过类似系统的研究。但是由于上述系统致力于解决异构数据库间复杂的交互操作,大而全,并不符合一些中小企业的需求,如 IBM 的 CCD 表方案实现复杂且 CD 表占用资源较多维护费用高昂,微软公司的出版者/订阅者方案只能在 NT 运行等。而其它的系统大多都存在此类问题。 四、 局域网数据同步解决方案(一

8、) .SQLSERVER 到 SQLSERVER同步复制 SQLSERVER 同类数据库之间实现同步,可直接参照 Microsoft 的发布/订阅模式。具体方法步骤如下: (1) SQL 复制的基本元素包括出版服务器、订阅服务器、分发服务器、出版物、文章。(2) SQL 复制的工作原理SQLSERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。(3) SQLSERVER 复制技术类型SQLS

9、ERVER 提供了三种复制技术,分别是:1、快照复制/2、事务复制/3、合并复制。(4)发布/订阅方案第一步:来配置出版服务器1、选中指定 服务器节点。2、从 工具下拉菜单的 复制子菜单中选择发布、订阅服务器和分发命令。3、系统弹出一个对话框点下一步然后看着提示一直操作到完成。4、当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution)。第二步:创建出版物1、选中指定的服务器。2、从 工具菜单的 复制子菜单中选择创建和管理发布命令。此时系统会弹出一个对话框。3、选择要创建出版物的数据库,然后单击创建发布 。4、在 创建发布

10、向导的提示对话框中单击 下一步系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助) 。5、单击 下一步系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER 允许在不同的数据库如 ORACLE 或 ACCESS 之间进行数据复制。但是在这里我们选择运行SQLSERVER2000的数据库服务器。6、单击 下一步系统就弹出一个定义文章的对话框也就是选择要出版的表。7、然后 下一步直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。第三步:设计订阅1、选中指定的订阅服务器。2、从 工具下拉菜单中

11、选择 复制子菜单的请求订阅。3、按照单击 下一步操作直到系统会提示检查 SQLSERVER 代理服务的运行状态,执行复制操作的前提条件是 SQLSERVER 代理服务必须已经启动。4、单击 完成。完成订阅操作。完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制发布内容 右键发布内容 属性击活状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在 0: 00:00 和 23:59 :59 之间。接下来就是判断复制是否成功了打开。C:/ProgramFiles/MicrosoftSQL

12、Server/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database 下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。如果不确定是否创建成功,打开你的数据库看在订阅的服务器的指定订阅数据库下看是否能够看到刚才所发布的表。(二) 、 Oracle 与 SQL Server 的互连及共享 不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER 里面叫做 LINKED SERVER,通过 ODBC 实现与其它数据库的互联。 而 ORACLE 实现异

13、构服务的技术叫做透明网关 Transparent Gateway,当然之前 ORACLE 还采用过通用连接技术。目前 ORACLE 利用透明网关可以实现和 SQLSERVER、SYBASE、DB2 等多种数据库的互联。透明网关的体系结构也很简单,在 ORACLE 和 SQL ERVER 之间使用ORACLE 透明网关服务器实现互连互通,其中透明网关服务器可以与 ORACLE或 SQLSERVER 数据库在同一台主机上,也可以是在独立的一台主机上。测试步骤如下: (1)、在 SQLSERVER 数据库上创建测试账号和表 数据库: PUBS,账号 cyx, create table t (c ch

14、ar(10); (2)、测试用数据库和透明网关在同一台机器上,透明网关在 oracle 默认安装时是不安装的,所以如果你想用需要选择这一选项。 (3)、安装透明网关 for sql server 的软件后,可以在$ORACLE_HOME 下看到 tg4msql 目录,编辑$ORACLE_HOME/tg4msql/admin/inittg4msql.sql 文件确认这一行正确: HS_FDS_CONNECT_INFO=SERVER=IP;DATABASE=pubs (4)、修改透明网关 server 上的 listener.ora,在 SID_LIST 中加入以下内容: (SID_NAME =

15、tg4msql) # SID 自己命名 (ORACLE_HOME = c:) (PROGRAM = tg4msql) (5)、在 oracle server 上的 tnsnames.ora 中加入到透明网关的tnsname,内容如下: sql2k = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.16.98.16)(PORT = 1521) #此处 HOST 填的是透明网关 SERVER 的地址) (CONNECT_DATA = (SID = tg4msql) ) #此 SID 应和透明网关 SERVER 上设定的 SID 相同 (HS=OK) ) (6)、修改 ORACLE SERVER 的初始化参数,将 global_names 设为false,因为我们并不使用 GLOBAL NAME。然后重起数据库。 (7)、现在在 ORACLE SERVER 上创建 DB LINK 就可以了。以上测试实现通过透明网关来访问 sql server 的数据,只需要注意ORACLE 访问配置问题。注意事项 : 1、 Oracle For SQLServer 的透明网关在 UNIX 下无法实现,目前只支持WIN;原因很简单,SQLSe

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号