基于数据同步技术的5T系统架构优化方案研究

2016-02-16 02:10颖,蒋
铁路计算机应用 2016年6期
关键词:铁路局总公司日志

赵 颖,蒋 荟

(中国铁道科学研究院 电子计算技术研究所,北京 100081)

基于数据同步技术的5T系统架构优化方案研究

赵 颖,蒋 荟

(中国铁道科学研究院 电子计算技术研究所,北京 100081)

论文分析5T系统的现状及存在的问题,对比现有的数据同步技术,提出一种基于数据库日志分析的数据同步方法,介绍该方法的数据同步流程和原理。基于此方法对5T系统架构进行优化,提出对主备库数据同步、读写分离、消息推送等方面的解决方案,论述了此方案的优势以及可提升的空间。

数据同步;日志;架构

铁路车辆运行安全监控系统(简称:5T系统)已投入使用多年,系统通过多种探测设备实时监控客、货车辆运行状态,并提供告警,为保障客、货车辆运行安全发挥了显著的作用。

现有的5T系统架构如图1所示,探测站、铁路局服务器、铁路总公司服务器之间的数据交互主要通过中间件传输数据文件。探测站采集的监测数据形成文件后逐级上传至铁路局服务器和铁路总公司服务器,经过数据库的读取和解析写入监测表中;同时,铁路总公司服务器将处理汇总后的数据导出成数据文件,再分发至铁路局服务器;铁路局服务器将汇总信息解析后,同监测数据一起进行综合评判,得到报警评判结果,实现基于多点监测信息的联网综合报警评判。

随着5T系统监测设备覆盖范围的不断扩大,需要传输和存储的数据量越来越大。Oracle数据库要存储大量的数据,完成解析、评判、统计和导出等工作,还要为应用系统提供数据查询服务,因此数据库的资源越发紧张,由此带来几个问题:

(1)上传的监测数据入库可能出现延迟,数据入库延时会使监测信息推送滞后,影响现场作业人员依据监测报警信息进行列车检查作业。(2)自上而下的数据同步的实时性若无法保证,将会影响综合评判的准确性,极易造成系统误判或漏判。(3)数据同步的延时或失败如果不能及时告警,将不利于提醒系统技术人员在第一时间发现系统运行故障。(4)查询分析的响应速度慢,不利于开展更加深入的数据挖掘分析,影响用户体验。

因此,从改进数据同步方法、分离读写数据库、增加敏感业务消息等几方面,对5T系统架构进行优化,提高系统整体性能,保证5T系统的准确性和高效性,已成为当前的一项重要工作。

1 数据同步方案对比

Oracle提供了DataGuard、Streams、GoldenGate等数据同步工具,它们的用途和要求各不相同。

图1 系统现有架构与流程图

1.1 DataGuard

DataGuard是Oracle数据库自带的一款免费数据同步工具,基本原理是将日志文件从源数据库传输到目标数据库,在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步。它对网络带宽要求高,主备库环境与结构须完全一致,因此适用于数据库灾备、故障恢复,不适合读库与写库、异构数据库之间的数据同步。

1.2 Streams

Streams利用高级队列技术,通过用Log Miner挖掘日志文件生成变更的逻辑记录,将这些变更应用到目标数据库上,从而实现数据库之间或一个数据库内部的数据同步。尽管Streams支持异构的、部分对象的复制,但它配置维护复杂、对源数据库压力大、稳定性较差。

1.3 GoldenGate

GoldenGate可以用于多种不同操作系统平台和多种不同数据库系统之间的数据同步,它支持一对多、多对一,双向复制等,也可以选择部分对象进行复制,可满足数据分发和数据集成的需要,减轻源数据库压力,但是需要支付昂贵的费用。

基于项目成本和系统长远发展多方面综合考虑,决定自行研发一款基于数据库日志的同步工具,通过捕获Oracle数据库的日志变化,将源数据库的变化逻辑复制到目标数据库中,实现数据的同步。

2 基于日志的数据同步原理

在Oracle中,每执行一次更新操作(创建、插入、删除、更改),系统都将该操作以固定格式记录到日志文件(Redo Log File)中,以便在数据库出现例程失败或设备故障时,可以恢复数据库[2]。因此,若需了解数据库的操作变化,将变化的数据从一个数据库同步到另一个数据库,可以通过分析Oracle数据库的日志变化来实现。

2.1 数据同步流程

数据同步的流程如图2所示,数据同步逻辑上分为源端和目标端。源端的任务主要是负责捕获Redo Log的变化,分析日志,合成交易,最后输出程序可识别的数据变更项;目标端的任务主要是将数据变更项根据需要应用到目标库中。

2.2 源端同步原理

源端通过监控读取、日志分析、事物缓存、发布等步骤,将二进制格式的日志信息翻译成程序可读操作记录,过滤无需提交的操作记录后,将有效的操作记录合成为事务,发布到消息系统,供目标端进行按需订阅。

2.3 目标端同步原理

目标端根据需要订阅源端发布的消息,获取操作记录,将其过滤分发到不同的应用模块,实现数据同步或其他功能,目标端的应用模块可根据需要扩展。例如SQL Applier,主要将操作记录翻译成SQL语句,并在目标库执行,也就是常见的表对表的数据同步;WarnMsgApplier,通过捕获敏感数据的变化,当达到阈值时,向告警中心推送报警信息。

图2 数据同步流程图

这种方式不依赖任何数据库的引擎便可获取变更数据,因此不会影响源库的性能;且由于获取的是源库操作记录的变化,所以应用这些变化可以灵活多样地开展同步工作。既可以按需要进行同步,也可以进行异构同步。

3 系统架构优化方案

针对上述5T系统架构存在的问题,提出基于日志的数据同步工具对5T系统架构进行改进优化的方案,优化后的系统架构如图3所示。对系统架构优化的工作主要体现在以下几个方面。

图3 优化的系统架构与流程图

3.1 采用数据同步工具取代传输中间件,实现铁路总公司到铁路局的数据同步

探测站形成的数据文件上传至铁路局服务器后,一方面进行解析入库,另一方面直接通过消息中间件传输至铁路总公司服务器,这是自底向上传输最快捷的方式。而自上而下从铁路总公司同步到各铁路局的数据,如果采用中间件传输,需要经过读表、导出、传输、解析和入库多个步骤,频繁地读写数据库和硬盘,容易造成资源紧张。因此,可采用数据同步工具取代传输中间件,通过捕获铁路总公司级数据库日志的变化,实现铁路总公司到铁路局的数据同步。由于监控和读取日志变化无需访问数据库,因此可以有效降低对数据库资源占用,同时不需要向磁盘上写任何文件,还可以降低系统对磁盘写入的压力。

此外,系统值班监控人员可以在铁路总公司级服务器监控数据同步的进度和结果,随时掌握数据同步记录。一旦出现同步失败,可及时通过人工进行补传,最大限度保证数据的一致性。

3.2 铁路总公司和铁路局分别增加读数据库,实现业务数据的读写分离

原有5T系统架构中,数据存储与分析都在一个数据库中实现,资源紧张时,复杂的数据分析会影响数据入库存储,且统计分析的效率较低、用户查询的响应速度慢。

新的系统架构中,利用数据同步工具实现读写库分离,将主要业务数据从写库实时同步到读库中,可以将复杂的数据统计和分析放在读库上实现,面向用户的信息查询也直接访问读库。通过这样读写拆分,既实现了对关键业务数据的备份,还可以避免数据入库与统计分析之间相互影响,大大提高了用户查询的响应速度。此外,数据同步工具支持一对多、异构的复制,所以读库可以根据业务需求进行横向扩展及按需复制。

3.3 新增敏感业务消息提醒服务

原有系统中,用户主要通过监控页面查看告警信息。而在新系统中,可利用数据同步工具捕获敏感数据的变化,并提供推送告警信息的功能,将危及行车安全的车辆报警信息,实时推送给用户,使他们可以及时获取告警信息,及时进行故障处置。且该功能可以根据用户需求,进行个性化定制,使得用户及时获取满足自己需求的告警信息,从而避免因滥报导致故障处置响应不及时的现象发生。

4 结束语

基于日志的数据同步技术可将数据同步延时控制在秒级,完全满足5T系统业务的需求。采用此方法对5T系统架构进行优化,可以在很大程度上解决资源紧张、数据不一致、响应速度慢等问题。同时,将读写数据库分离,为更深入的数据分析与挖掘奠定了基础。此外,利用数据同步工具的实时告警服务,可以让用户更方便及时地获取报警信息,提高用户体验。

改进后的系统,数据的查询和分析还是在关系型数据库里实现。随着数据的不断增多,关系型数据库在处理海量数据方面将是一个瓶颈,今后可以通过数据同步工具将数据同步到Hadoop,这样系统的日常分析可以在Hadoop里进行,同样有利于系统性能的提升。

[1]李伟明.ORACLE REDO LOG文件分析及C语言描述[J].小型微型计算机系统,2003(7):1243-1246.

[2]林树泽,卢 芬.Oracle 11g R2 DBA操作指南[M].北京:清华大学出版社,2013.

[3]弗里曼,哈 特.Oracle Database 11g RMAN备份与恢复[M].王念滨,陈子阳,译.北京:清华大学出版社,2011.

责任编辑 王 浩

Optimization architecture of 5T System based on data synchronization technology

ZHAO Ying,JIANG Hui
( Institute of Computing Technologies,China Academy of Railway Sciences,Beijing 100081,China)

This article analyzed the present situation and problems of 5T System,compared with existing data synchronization techniques,put forward a method of data synchronization based on database log analysis,introduced the process and principle of data synchronization in detail.Based on this method,the architecture of 5T System was optimized,and the solution of the main data synchronization,read and write separation,message push was proposed.Finally,the advantages of this data synchronization scheme were discussed.

data synchronous;log;architecture

U260.42∶TP39

A

1005-8451(2016)06-0009-04

2015-11-20

中国铁路总公司白皮书项目(2015X009-A)。

赵 颖,助理研究员;蒋 荟,研究员 。

猜你喜欢
铁路局总公司日志
UIC和欧盟铁路局签署一项协调框架协议
一名老党员的工作日志
既有灾害监测系统接入铁路局中心系统方案研究
扶贫日志
中国铁路总公司工程评审信息
雅皮的心情日志
雅皮的心情日志
共青团中国盐业总公司第二次代表大会在京召开
呼和浩特铁路局GSM-R系统现场应用故障分析与处理
快递小哥的一天