数据库同步技术的研究与应用

2019-07-16 03:14寇媛媛王晓明乔文文
电脑知识与技术 2019年15期
关键词:数据表时效日志

寇媛媛 王晓明 乔文文

摘要:气象部门早期的业务系统存在严重的信息孤岛现象,需要合理规划数据流程,采用数据库同步技术能够保证各个数据库的一致性和数据的可用性。本文介绍了四种不同的同步技术,主要对比四种技术的优缺点,根据不同的数据、不同的时效要求、不同的数据环境,采用不同的同步技术应用于广东省气象探测数据中心数据库体系,支撑本省标准数据接口、业务网和其他业务系统。同时总结了同步技术的重要性,在使用过程中遇到的一些问题和后期需要改进的地方。

关键词:数据库;同步技术;XML;DML;Oracle Goldengate;Oracle DateGuard

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2019)15-0003-03

气象部门早期的业务系统繁多,大多自带独立的数据库系统,这些系统之间相互独立,类型不一,存在严重的信息孤岛现象。大量的数据库系统使业务系统的链路变得复杂,数据库的运维给管理人员在技术和人力方面均带来较大挑战。因此要合理规划数据流程,在尽量保证不影响现有业务系统并且消耗数据库服务器资源足够小的前提下,采用数据库同步技术,保证各个数据库数据的一致性,提高数据的可用性。

1 数据库同步技术

数据库同步技术最先出现在热备容灾领域,用以把数据实时同步到另外一个或者几个不同的地方以防止不可抗灾难的发生[1]。数据同步是通过技术手段将源端数据库中的数据更新到其他数据库中,从而保证所有数据库中的数据一致。当源端数据库中的数据发生改变时,其他数据库中的数据也要随之发生改变,从而保证应用需要。

1.1 XML技术实现数据同步

XML技术是早期最多采用的数据同步技术,XML具有简单易懂,有自描述性,可扩展性和平台无关性,并且是纯文本文件等特点,能够有效地解决在异构数据库同步时出现的冲突,在数据交换中经常被使用[2]。早期的气象部门数据库采用的是XML技术实现数据同步,定时启动数据抽取程序,抽取源端数据库在抽取时间段内变化的数据,形成XML文件后,再利用数据插入程序将XML文件中的数据导入目标端数据库,流程见图1。

1.2 DML技术实现数据同步

DML(Data Manipulation Language)是一種数据操作语言,主要是用于检索或者修改数据的操作,包括SELECT、INSERT、UPDATE、DELETE操作。

采用DML技术进行数据同步的主要是在源端数据库和目标端数据库建立数据库关联,通过DML语句进行数据同步,包括触发机制和定时机制。触发机制需要在源端和目标端数据库表上创建序列字段,在目标端创建记录同步序列数值的表,当源端的数据发生变化时,根据目标端序列表记录下来的序列号确定新的序列号,对源端的数据表进行数据抽取,插入目标端数据库,同时记录下最大序列号写入目标端序列表,流程见图2。定时机制只需要定期启动进程抽取源端数据库变化的数据,插入目标数据库中。

1.3 Oracle Goldengate实现数据同步

Oracle GoldenGate(以下简称OGG)是一种基于日志的结构化数据复制备份软件,通过实时读取源数据库在线日志或归档日志获得数据的变化,将数据变化顺序暂存,通过压缩和加密后传送到目标主机,再将这些变化应用到目标端数据库,从而实现源数据库与目标端数据库同步。OGG具有高性能、可靠性、异构性等特点[3],可以在异构的IT基础结构之间实现大量数据亚秒一级的实时复制,支持多种拓扑结构上单向或双向部署[4]。图3为OGG的典型数据流程图[5],其中抽取进程负责从源端数据表或者日志中捕获数据,投递进程将源端产生的本地Trail文件以数据块的形式通过TCP/IP协议发送到目标端,复制进程读取目标端Trail文件中的内容,并将其解析为DML或DDL语句,然后应用到目标端数据库中。

1.4 Oracle DateGuard实现数据同步

DataGuard(以下简称DG)是Oracle 公司基于数据库级别的容灾解决方案[6],是一种高可用的数据库方案,它是在源端与目标端之间通过日志实现数据同步,可以实现快速切换与灾难性恢复。源端对外提供服务,当用户在源端进行操作时,操作被记录在联机日志和归档日志中,这些日志通过网络传递给目标端,在目标端数据库上重演,从而实现源端和目标端数据库之间的数据同步。

2 同步方法对比

2.1 XML技术实现数据同步

自主研发的基于XML技术的数据同步可以兼容不同类型的数据库系统,但是由于采取的是定时机制,同步的时效性较差。当源端数据表出现大量的数据变化时,数据抽取会生成较大的XML文件,在目标端数据库进行更新操作时形成大事务,造成数据库的性能下降,影响数据库运行。同时由于同步采用的是单线程程序,当遇到XML文件较大时,会堵塞目标端数据的同步,影响同步的时效。

另外,为了保证数据的一致性,源端数据库数据抽取的时间段会大于同步进程运行的时间间隔,同时还需要定时对一定时间段内的数据进行补充更新,一般一个表需要启用2个甚至3个同步进程,产生大量重复更新的数据,消耗了大量的系统资源。

2.2 DML技术实现数据同步

自主研发的基于DML技术的数据同步可以兼容不同类型的数据库系统,可以根据业务不同采用不同的机制,比如数据频次不确定且时效要求较高的数据表就需要采用触发机制,而数据频次确定且没有时效要求的数据表可以采用定时机制。

分析采用触发机制实现自动站数据表的同步,采集的时间为2013年12月18日12Z(国际时)到2013年12月19日03Z(国际时)的整点资料,去除提早入库的资料主要分析广东省内前1900条(80%资料)入库站点数据,时效如表1。同步平均时间差在17秒左右,能够满足应用的时效要求。

但是在实际应用过程中发现,DML触发机制实现数据同步存在丢数据的现象,如表1所示,由于目前气象部门原始数据入库采用的是并行机制,会存在多条数据同时insert的操作,而序列生成器根据数据开始插入的时间给定数值,存在先插入的数据后插入成功的现象。在后插入的数据已经同步到目标端数据库后,先插入的数据才插入成功,而目标数据库中的序列已经是大于该条记录的序列号,造成数据丢失,源端和目标端数据库不能保证数据一致性。需要另外采用定时机制进行数据补全,数据库同步采用多种机制重复运行保证数据一致性,对数据库性能造成损耗。

2.3 OGG技术实现数据同步

OGG是目前广东省气象局数据库系统主要使用的同步方式,在7套ORACLE数据库之间通过部署OGG进程进行数据实时同步,数据时效较高。

由于在源端和目标端之间存在着大量的字段转换,会对同步时效造成很大的影响。分析采用OGG实现的自动站数据表数据的同步效率,采集的样例时间为2018年3月29日12Z(国际时)到2018年3月30日03Z(国际时)的整点资料,去除提早入库的资料,采集广东省内前2400条(80%资料)入库站点数据的时间,时效如表2,同步平均时间差在20秒左右。源端和目标端数据量对比如表2,两端数据量一致,能够保证数据的一致性。

OGG的维护需要一定的成本,需要对维护人员进行专业的培训,同时发生故障时解决比较复杂,当源端有大事务时会对目标端数据库造成堵塞,影响数据同步进程的运行,也会造成数据库内存、cpu的耗损,严重时会引起数据库无法登录。

2.4 DG技术实现数据同步

DG是Oracle推荐用于高可用、灾难恢复的数据同步技术[6],具有配置管理简单、运行可靠、可提高系统可用性等特点,可以保证数据迁移时的一致性,避免数据迁移时的风险。同时也具有目标端数据库不能支持所有的数据类型,只能同步整个数据库,灵活性较差,不支持异构环境等缺点,必须满足以下几个条件才能运行:一是环境中的Oracle版本和操作系统版本要能够支持DG的实施;二是源端和目标端的系统操作系统平台要一致;三是源端和目标端的数据库Oracle版本要统一[5]。

目前DG同步技术在广东省气象数据库中还没有使用,计划2018年部署对核心应用数据库进行备份,两端数据库网络搭建在一个内网区域,解决了日志传输对带宽及时延的较高要求,在源端数据库发生故障时断开DG,将数据接入以及应用直接切换至备用数据库,保证两端数据库的一致性,保证应用完全感受不到数据库故障带来的影响。

综合以上分析,四种数据库同步技术的对比见表3。

3 同步技術在气象部门数据库中的应用

随着气象现代化的发展,“气象资料一分钟到桌面”的提出对数据时效的要求不断提高,在平安山区、平安海洋等项目的支持下已经对数据传输方式进行了升级,区域自动站等数据目前采用的是流数据传输方式,数据落地时间从原来的1分钟缩短到现在的不到10秒,改进传输方式的同时,也对同步技术提出了更高的要求。

广东省气象探测数据中心的数据库系统早期应用自己开发的程序采用XML技术进行数据同步,时效性较差,也不能保证两端数据库的数据一致性。改进后应用自己开发的程序采用DML技术进行数据同步,有效地解决了数据时效的问题,但是数据一致性问题还是没有得到解决。通过对几种同步方式的分析对比,OGG技术能够满足资料时效要求,保证数据一致性要求,方便部署使用,且有后期比较完善的软件维护。2015年开始数据中心采用OGG方式进行数据同步,但是部分系统存在着一些系统以及服务器的问题无法部署OGG软件。GPS/MET数据库每个时次数据量和数据时间比较固定,采用的是DML技术定时机制进行同步;闪电定位数据库数据不固定,且数据量比较小,采用的是DML技术触发机制进行同步;资料档案室的数据库表不能进行改动,数据固定,无时效性要求,采用XML技术进行同步。经过统筹分析各个系统的数据、时效要求、数据环境,分别采用XML、DML技术进行同步,2018年还将使用DG技术进行数据库灾备,具体架构如图5所示。整个数据库体系通过高效系统及多种同步软件,实现多源数据库资源融合,目前已实现地面、高空、海洋、农业与生态、大气成分、气象服务产品、历史气候待用数据7大类,共74种气象资料的存放,是本省标准数据接口、业务网和其他业务系统的底层支撑。

4结束语

随着气象事业的不断发展,气象现代化的提出对数据的时效性、可用性要求不断提高,也对数据库同步技术提出了更高的要求,数据库同步技术的发展将会极大地提高数据库管理工作的效率和数据安全性。

但是目前OGG同步还存在着一定的问题,经过分析时效差主要是因为需要对源端的数据进行字段转换,从源端数据表抽取数据耗损了一定的时间,后期的工作中将主要针对源端数据库进行升级改造,保证源端和目标端数据库表结构一致,可以采取全表同步的方式,从而提高同步效率,保障气象数据的及时性、有效性和可用性。

参考文献:

[1] 李旭,董争鸣.基于 Oracale数据库实时同步技术的研究与分析[J].信息安全与技术,2014(2):57-59.

[2] 张振友,孙燕.分布式异构数据库同步技术研究与实现[J].电脑知识与技术,2015(28):16-19.

[3] ORACLE.甲 骨 文 推 出 最 新 数 据 集 成 解 决 方 案 ——OracleGoldenGate.https://www.oracle.com/cn/corporate/pressrelease/1-3074.html,2009.

[4] JP Jeffries.Oracle GoldenGate 11g Implementer's guide[M].Birmingham:Packt Publishing Ltd.,2011.

[5] R Gupta.Mastering Oracle GoldenGate[M].Apress, 2016.

[6] 盛玮琦.基于Oracle Dataguard的数据灾备技术[J].信息系统工程,2010(6):77.

[7] 郭伟华.浅谈Oracle数据同步技术[J].科技资讯,2010(33):13-14.

[8] 潘立江,包永堂.Oracle DataGuard在异地容灾中的分析与应用[J].电脑知识与技术,2008(1):8-10.

【通联编辑:唐一东】

猜你喜欢
数据表时效日志
一名老党员的工作日志
扶贫日志
基于列控工程数据表建立线路拓扑关系的研究
游学日志
J75钢的时效处理工艺
一种新型耐热合金GY200的长期时效组织与性能
环保执法如何把握对违法建设项目的追责时效?
X80管线钢的应变时效行为研究
图表
基于VSL的动态数据表应用研究