申 毅,佘彦超,冉耀宗
(铜仁学院 大数据学院,贵州 铜仁 554300)
随着大数据技术的发展,越来越多的分布式单元需要进行数据库的同步。例如,银行各个网点之间的数据同步,医院不同部门数据之间的同步等。现有的数据同步方法有两种,分为同构数据库的同步和异构数据库的同步。同构数据库的同步与不同网点MySQL数据库之间的同步相同。由于采取相同的存储机制,相同数据库的同步较容易实现,数据库厂商针对各自数据库系统开发的同步方案[1],如Oracle、结构化查询语言(Structured Query Language,SQL)Server。异构数据的同步与MySQL与SQL Server数据库之间的同步相同。由于采取不同的存储机制,不同数据库的同步较难实现。学者们提出利用数据库触发器和存储过程实现的数据同步系统[2-5]。由于学院教务处旧版系统采用MySQL数据库,新版系统采用SQL Server数据库,两个版本都在使用,两者之间需要进行异构数据库同步。采用基于触发器的机制捕获变化数据,耗损资源较大,故采用基于时间戳增量变化捕获方式[6],耗损资源较小。设计教务管理系统新旧版本的数据库同步系统,一个数据库的信息产生变化,采用可扩展标记语言(Extensible Markup Language,XML)作为中间件,将这个数据库的增加、删除、修改等信息写入XML文件,将这个XML文件传递给另一个数据库,另一个数据库通过解析XML文件获得相应变化的信息,从而获得信息同步。
该系统分为同步规则定义、数据扫描、XML文件生成、文件传输、XML文件解析5个过程。
同步规则定义包括异构规则声明和数据扫描周期。异构规则声明包括源数据库和目的数据库相互对应的数据库名、表名、字段名、字段数据类型、主键标识。如源数据库的“Course-Information”表对应于目的数据库的“Course”表,通过异构规则声明,使目的数据库知道两者的对应关系。数据扫描周期可以分为一小时、一天、一周、一月。
数据扫描根据扫描周期进行相应间隔时间的数据扫描,并生成相应的XML文件如下:
...重复M多行(比如M等于10万条记录)
主键值课程名称为“数字电路基础”的记录其opt属性值为“I”,说明其是源数据库新增的数据,当目的数据库解析时,将该记录写入到数据库中。
异构规则声明文件和XML文件通过内部网络进行传输。根据异构规则声明,目的数据库端通过解析XML文件进行相应的数据操作,完成源数据库和目的数据库的同步。
系统采用Java技术,通过Web界面显示旧版教务管理系统的课程信息、考试信息和调课信息,课程信息界面如图1所示。
图1 旧版教务管理系统的课程信息
通过Web界面显示新版教务管理系统的课程信息、考试信息和调课信息,课程信息界面如图2所示。
图2 新版教务管理系统的课程信息
同步参数设置实现了异构数据库同步的用户可操作配置。设置好同步周期和同步模式,源数据库和目的数据库就可以自动同步。同步参数设置如图3所示。
图3 同步参数设置
同步后的新版教务管理系统的课程信息如图4所示。
图4 同步后新版教务管理系统的课程信息
设计学院教务管理系统新旧版本的数据库同步系统,采用基于时间戳的增量变化捕获方式,将XML作为中间件,将源数据库的增加、删除、修改等信息写入XML文件,将XML文件传递给目的数据库。目的数据库通过解析XML文件获得相应变化的信息,获得信息同步。采用Java技术实现了同步系统的界面操作,便于管理同步进程。