一种基于对等网络的异构数据库同步方法

更新时间:2024-05-13 22:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一种基于对等网络的异构数据库同步方法

黄步添butine@zju.edu.cn

背景技术

在关乎民信息技术的发展是日新月异的,很多信息系统建设于不同时期,而且又由不同的厂商各自进行设计,使得这些系统的平台往往呈现出异构性,导致了数据的不一致性。如果数据信息得不到有效共享,那么这些独立的数据系统将成为一个个“信息孤岛”;此外,伴随着企业业务的蓬勃发展与信息化程度的不断提高,各应用系统间的数据交换也日渐频繁,会带来这样的问题:不同平台,不同格式的数据源进行数据交换和数据同步的需求越来越广泛。但在数据交换方面,由于没有标准的数据交换与同步工具,要实现数据交换与同步十分困难。因此企业迫切希望集成各个信息中的数据,消除“信息孤岛”,保证信息系统之间信息交换畅通,保障数据传输的一致性和安全性,真正实现数据共享。为此,如何灵活及有效地处理这些异构数据库中的信息,实现异构数据库信息同步成为一个颇受关注的研究问题。

异构数据库系统的异构性主要体现在数据库系统的各个节点上采用不完全相同的硬件平台、操作系统和数据库系统,可概括为计算机体系结构的异构、操作系统的异构和DBMS的异构这三个方面。

各个参与的数据库分别运行在大型机、小型机、工作站、PC或嵌入式系统这些不同体系结构的计算机中称之为计算机体系结构的异构。

各个数据库系统运行于Unix, Windows NT, Linux等不同的操作系统中被看作是基础操作系统的异构。

DBMS的异构按照数据库模型可以分为两种:一种是由Oracle、SQL Server等几种不同的数据库但同为关系型数据库系统构成;另一种是由不同数据模型的数据库,如关系、模式、层次、网络、面向对象、函数型数据库共同组成的一个异构数据库系统。DBMS的不同主要表现在表达结构和限制以及语义这两个方面。表达结构和限制方面:不同的数据模型提供不同的结构原语,例如相同的信息在关系模型中用关系表达,而在网络模型中用记录类型表达;不同的数据模型可能支持不同的限制,不同的数据模型通常对应不同的数据库语言,即使数据模型相同也可以有不同的语言。数据语义方面:包括数据逻辑表示和数据库互操作两方面,其中数据逻辑表示涉及到所使用的数据模式以及数据类型等。

目前的同步方法的缺陷在于硬件、网络或数据库出现故障时,不能保证数据库数据同步

的可靠性和可用性。 技术方案

本方案的目的在于针对现有技术的不足,提供一种基于对等网络的异构数据库同步方法,数据库同步的各个服务器实体都是对等的,既是信息提供者又是索取者,节点之间通过直接互联实现信息资源的共享,而无需依靠集中式服务器的支持。

区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。本发明方法借助区块链技术,记录数据库变更信息,同时记录时间戳,网络上各个节点维护统一的区块链。

本方案提供的异构数据库同步方法,包括以下步骤: (1)数据库信息发生变更,反馈给全局代理服务;

(2)全局代理服务把变更的信息广播给各节点中的路由代理;每一笔数据库信息变更记录,必须广播给全局代理管理的所有节点;

(3)通过全局代理服务器,更新各个节点的资源信息;将更新的信息记录时间戳,并更新到区块链中;

全局代理服务器对以区块形式存在的一组数据实施随机散列并加上时间戳,将该随机散列进行广播;每个时间戳应当将前一个时间戳纳入其随机散列值,每一个随后的时间戳都对之前的时间戳进行增强,这样便形成了区块链。

(4)更新各节点的代理同步状态,记录时间戳和待变更的信息,并把更新状态反馈给全局代理:每一个节点将收到的变更信息纳入一个区块中,当且仅当包含在该区块中的所有变更信息都是有效的且之前未存在过的,其他节点才认同该区块的有效性;其他节点表示接受该区块,同时在跟随该区块的末尾,生成新的区块以延长该区块链条,且将被接受区块的散列值作为新区块的随机散列值。

本方案提供的异构数据库同步装置如下:

该装置部署在局域网环境下,每个数据库对应代理层的一个路由节点,该路由节点监测对应数据库的信息变更;全局代理服务记录各个节点的状态,维护数据库变更的区块链。

(1)路由节点:监测数据库是否发生变化,若变化则通知全局代理服务。

(2)全局代理服务:全局代理服务把数据库变更的消息包通知给网络中的每一个路由节点。

本方案的有益效果是:

1、给出了一种异构数据库同步装置,通过去中心化,每个节点自我管理,可以大大提升数据库同步的可靠性和可用性。

2、给出了一种对等网络方法,并基于区块链技术,拥有完整的数据交换记录,解决了传统中心模式的数据交换的不可追溯。 附图说明

图1为本方案异构数据库同步方法流程图; 图2是本方案异构数据库同步装置示意图。 具体实施方式

下面结合附图和具体实施例对本方案作进一步详细说明。

如下图1所示,本方案提供的异构数据库同步方法,包括以下步骤: (1)数据库信息发生变更,反馈给全局代理服务

每一笔数据库信息变更的区块结点结构如下: 数据项 Version Previousblockhash Nextblockhash Merkleroot Time Bits Confirmations Contents 释义 区块版本号 前一区块的256位HASH值 后一个区块的256位HASH值 基于一个区块中所有交易的256位HASH值 时间戳 压缩格式的当前目标HASH值 区块中数据变更的确认数 变更内容 (2)全局代理服务把变更信息广播给各节点中的路由代理:每一笔数据库信息变更记录,必须广播给全局代理管理的所有节点。

(3)通过全局代理,更新各个节点的资源信息:将更新的信息记录时间戳,并更新到区块链中。区块链,是个链表结构,区块结点结构即为区块链的结点信息。

(4)更新各节点的同步状态,并记录时间戳和待更新的资源,把更新状态反馈给全局代理;若节点的信息同步成功,则同步状态为1,否则为0;各节点维护着区块链信息,当节点的区块链信息不完整时,等下次全局代理服务通知更新操作,节点的区块链需要进行同步完成后,再进行下一更新操作。

如图2所示,本发明提供的异构数据库同步装置如下:

该装置部署在局域网环境下,每个数据库对应代理层的一个路由节点,该路由节点监测对应数据库的信息变更;全局代理服务记录各个节点的状态,维护数据库变更的区块链。

(1)路由节点:监测数据库是否发生变化,若变化则通知全局代理服务。

(2)全局代理服务:全局代理服务把数据库变更的消息包通知给网络中的每一个路由节点。

开始数据库信息发生变更,反馈给全局代理服务全局代理服务把变更信息广播给各节点中的路由代理通过全局代理,更新各个节点的资源信息N资源信息同步成功?更新局部代理同步失败状态,并记录时间戳、待更新的资源以及失败原因,并反馈给全局代理Y更新局部代理同步成功状态,并记录时间戳以及更新的资源监测同步失败的节点,并继续发起资源信息同步操作NY资源信息同步成功?结束

图1

图2

本文来源:https://www.bwwdw.com/article/jfc7.html

Top