异构数据库同步方法及系统技术方案

技术编号:3872435 阅读:255 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种异构数据库同步方法,用于实现异构的源数据库和目的数据库之间的数据同步,包括以下步骤:(a)在源数据库端根据源数据库的数据维护操作创建目的数据库的执行语句;(b)目的数据库端从所述源数据库端获取所述执行语句;(c)目的数据库端执行所述执行语句更新目的数据库中的数据。本发明专利技术还提供一种对应的系统。本发明专利技术通过在源数据库端创建目的数据库的执行语句并将执行语句发送到目的数据库执行,实现了异构的源数据库和目的数据库之间数据的实时同步。

【技术实现步骤摘要】

本专利技术涉及数据库数据同步
,特别涉及一种异构数据库同步方法 及系统。
技术介绍
目前,信息化建设正以前所未有的速度发展,各种各样的数据急剧膨胀。 现有的计算机系统主要通过数据库实现对数据的存储和维护,各应用系统通过 访问数据库获取所需数据或进行相关数据维护。很多公司都推出了自己的数据库软件,例如美国微软公司的SQL Server、美国甲骨文公司的Oracle等。为了保证应用系统之间数据的一致,往往需要进行数据库(例如本地数据 库与远程数据库)数据地同步。对于同一结构的数据库,可直接采用复制方式 实现多个数据库间的数据同步然而,由于不同的数据库具有不同的存储结构并采用不同方式维护,因此 异构数据库之间无法采用直接复制的方式实现数据同步。通常,异构数据库之 间的数据交互是通过ODBC (Open Database Connectivity,开放数据库互连) 或数据库本身自带的导出导入功能或是第三方软件(例如美国甲骨文公司的透 明网关技术,美国国际商务机器公司的的CCD表(一致变化数据表)方案, 美国微软公司的出版者/订阅者方案等)进行交互。上述异构数据库之间的数据同步方法虽然可实现数据同步,但这些方案只 能一次性进行数据的转换(例如定时转换),而不能进行实时同步操作。
技术实现思路
本专利技术要解决的技术问题在于,针对上述异构数据库之间无法实现实时同 步的问题,提供一种异构数据库同步方法及系统。本专利技术解决上述技术问题的技术方案是,提供一种异构数据库同步方法, 用于实现异构的源数据库和目的数据库之间的数据同步,包括以下步骤(a) 在源数据库端根据源数据库的数据维护操作创建目的数据库的执行语句;(b) 目的数据库端从所述源数据库端获取所述执行语句;(c) 目的数据库端执行所述执行语句更新目的数据库中的数据。 在本专利技术所述的异构数据库同步方法中,在所述步骤(a)之前还包括初始化目的数据库,使该目的数据库中的数据与源数据库的数据一致。在本专利技术所述的异构数据库同步方法中,所述步骤(a)中还包括将所述 执行语句存储到执行记录中,所述步骤(b)中目的数据库端从源数据库端获取所述执行记录,所述步骤(C)包括(cl)从所述执行记录中读取最早的一条执行语句并执行,并在执行完毕 删除该执行语句;(c2)判断执行记录中是否存在执行语句,若存在则返回步骤(cl),否 则返回步骤(b)。在本专利技术所述的异构数据库同步方法中,所述源数据库是美国甲骨文公司 的mysql,所述目的数据库是美国微软公司的sql server,所述步骤(b)中 目的数据库端通过mysql ODBC把所述源数据库端的执行记录拉到目的数据库 端,所述执行记录中包括多条创建最早的执行语句。在本专利技术所述的异构数据库同步方法中,所述源数据库是美国微软公司的 sql server,所述目的数据库是美国甲骨文公司的mysql,所述步骤(b)中 源数据库端通过xp一cmdshell把所述源数据库端创建最早的一条执行语句推 到目的数据库端执行。本专利技术还提供一种异构数据库同步系统,用于实现异构的源数据库和目的 数据库之间的数据同步,包括触发器,位于源数据库端并用于在源数据库端根据源数据库的数据维护操 作创建目的数据库的执行语句;传送单元,用于在源数据库端和目的数据库端之间传送所述执行语句;执行单元,位于目的数据库端并用于在目的数据库端执行所述执行语句更 新目的数据库中的数据。在本专利技术所述的异构数据库同步系统中,还包括初始化单元,用于初始 化目的数据库,使该目的数据库中的数据与源数据库的数据一致。在本专利技术所述的异构数据库同步系统中,还包括用于存储执行语句的执行 记录,所述传送单元为位于目的数据库端的记录获取单元,所述记录获取单元 用于从源数据库端获取包括多条执行语句的执行记录,所述执行单元从所述执 行记录中依次读取执行语句执行。在本专利技术所述的异构数据库同步系统中,所述源数据库是美国甲骨文公司的mysql,所述目的数据库是美国微软公司的sql server,所述传送单元位于 目的数据库端并通过mysql ODBC把所述源数据库端的执行记录拉到目的数据 库端,所述执行记录中包括多条创建最早的执行语句。在本专利技术所述的异构数据库同步系统中,所述源数据库是美国微软公司的 sq1 server,所述目的数据库是美国甲骨文公司的mysql,所述传送单元位于 源数据库端并通过xp—cmdshell把所述源数据库端创建最早的一条执行语句 推到目的数据库端。本专利技术的异构数据库同步方法及系统,通过在源数据库端创建目的数据库 的执行语句并将执行语句发送到目的数据库执行,实现了异构的源数据库和目 的数据库之间数据的实时同步。克服了已有异构数据库之间数据交互不能实时 同步的缺点,并大大提高了数据同步的实时性和一致性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中 图1是本专利技术异构数据库同步系统第一实施例的示意图; 图2是本专利技术异构数据库同步系统第二实施例的示意图; 图3是本专利技术异构数据库同步方法第一实施例的流程示意图; 图4是本专利技术异构数据库同步方法第二实施例的流程示意图。具体实施方式 ''本专利技术通过触发器在源数据库数据变化时生成目的数据库的执行语句,并通过mysql 0DBC、 sql server的xp—cmdShell命令和dos的管道命令实现执 行语句的传送,最终在目的数据库端执行上述执行语句,从而实现了异构数据 库的实时同步,克服了已有传统异构数据库之间数据交互不能实时同步的缺 点,并大大提高了数据同步的实时性和一致性。如图1所示,是本专利技术异构数据库同步系统第一实施例的示意图。该系统 由运行源数据库的源数据库服务器11和运行目的数据库的目的数据库服务器 14组成,其中源数据库服务器11和目的数据库服务器14为通过网络或类似 方式连接的两套硬件设备或者共用同一硬件设备。在源数据库服务器11中包括有触发器12及用于存储执行语句的执行记录 13。在本实施例中,触发器在源数据库服务器11中的源数据库执行数据维护 操作(例如插入数据、删除数据或数据更新等)时,实时创建相应的可由目的 数据库执行的语句(也可称为日志)。由触发器12创建的执行语句该执行语句 的创建时间一起存储到执行记录13中。在具体实现时,执行记录可以是一个 数据表。上述执行语句例如create DEFINER 二 ' root'@'localhost' trigger Worker—i after insert onWorker for each rowinsert into test. SyncTextLog(logSQL, writeTime, rowld) values(concat(〃insert into Worker(workerld, workerName)values (, ", new. workerld, ", , , ", new. workerName, ", )"), now(), uuid());drop trigger Worker—u ;create DEFINER = ' root'@'localhost' trigger Worker—u after update on Worker本文档来自技高网...

【技术保护点】
一种异构数据库同步方法,用于实现异构的源数据库和目的数据库之间的数据同步,其特征在于,包括以下步骤: (a)在源数据库端根据源数据库的数据维护操作创建目的数据库的执行语句; (b)目的数据库端从所述源数据库端获取所述执行语句;   (c)目的数据库端执行所述执行语句更新目的数据库中的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈英飞黄东喜徐亮陈思
申请(专利权)人:深圳市珍爱网信息技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1