浅谈跨内外网交换平台海量卡口数据实时同步交换方法

时间:2022-07-13 10:29:03

浅谈跨内外网交换平台海量卡口数据实时同步交换方法

摘 要:着力探讨海量数据如何跨网闸实时同步复制的方式,通过对多种跨网闸数据交换方式的性能和安全评测,选择使用oracle goldengate实现海量卡口数据实时同步交换,在实际应用中,交换通道运行稳定,性能高、安全可靠、维护成本低,满足了海量数据交换应用的需求,对同类问题的解决具有借鉴作用。

关键词:网闸;数据复制;goldengate;海量数据交换

中图分类号:TP311

上海卡口系统部署在独立的网上,各分县局负责建设本辖区的系统,采集本辖区的卡口过车数据,并存贮在本地。市局在图像网上对各分县局卡口系统的过车记录数据进行了抽取整合,集中存储。根据统计,全市每日卡口过车数据增量接近5000千万条,存储容量日均增长10GB。

上海公安卡口系统网和公安网完全物理隔离,而公安业务信息系统主要部署在公安网上,为了开展卡口数据在公安网上共享应用,需要将图像网中的卡口过车记录数据同步交换到公安网。目前,在两张网之间搭建了基于网闸的内外网交换系统,但采用什么方式通过网闸进行海量卡口数据安全、实时的交换是本文主要讨论的问题。

1 内外网交换情况分析

1.1 上海公安内外网交换平台简介

为了实现公安网和图像网数据共享交换,市局在两张网之间部署了基于网闸的数据交换平台。交换产品采用合众软硬件一体化的安全数据交换系统,提供数据库、文件、流数据安全交换,并提供文件格式检查、病毒查杀、数据加密、交换审计等安全服务。

合众安全数据交换系统从硬件上由两部分组成:外网交换服务器(OES)和内网交换服务器(IES)。在OES和IES之间部署网闸实现隔离,其拓扑图如图1所示:

图1 上海公安内外网交换平台拓扑结构

1.2 在可用交换方式下,对海量数据实时交换方式的测试研究。

1.2.1 数据库交换方式效率的测试与评估

针对卡口过车记录数据海量增长特性,对交换平台提供的数据交换方式进行评估分析,测试验证各种可行的数据交换方式,通过实际评测后,确定最终可以选用的技术方案。

首先,评估数据库交换方式的可行性。从合众内外网数据交换平台的性能特性可知,在理想条件下,即不考虑源库、目标库、交换平台性能瓶颈条件下,该平台每秒钟最高可交换数据记录数为4000条,但在实际测试中,每秒钟只能实现300余条数据记录的交换,原因分析是源库和目标库的io性能差所致。而卡口过车记录一天生产大约5000万条,平均每秒钟产生600条,若考虑上下班高峰时段,每秒钟实际过车记录数目可能超过2000条,可见交换平台的数据库交换方式不能满足实际需求。

其次,对于文件交换方式,通过实际测试每小时可以实现近2TB的数据交换。而卡口系统数据库存储容量日均增长约为10GB,每小时增长450MB;卡口系统数据库的归档日志日均生产量为500GB,每小时接近20GB,可见无论采用数据库导入导出方式还是采用日志挖掘复制方式的文件交换方式均可以实现海量卡口过车记录数据交换。

1.2.2 数据交换方式的选择

可以文件交换方式实现数据同步实时复制的主要技术有数据复制类工具和数据导入导出工具。

分析数据库复制类技术,其中一种数据库复制方式是挖掘数据库操作日志,解析出数据库操作命令和数据,打包成特定格式的文件后,传输到目标端,按照事务执行顺序在目标库执行数据库操作命令,实现数据复制,采用该技术的主要工具有oracle goldengate、stream、dds等cdc工具;第二种方式是采用数据库恢复技术,通过传输数据库的归档日志和在线日志到目标数据库,在目标库端进行数据库恢复操作,实现数据复制,采用该技术的工具有oracle dataguard等;第三种方式利用oracle导出导入工具定时从源库导出数据,生成dump文件,通过交换平台交换dump文件到公安网的目标库,利用oracle导入工具在目标库中导入源库数据,达到数据复制目的,通过编写数据导出,交换和导入程序,实现自动的数据导出、交换和导入工作,达到数据复制目的。

通过对上述三种文件交换方式评估和实际测试,得出如下结论:(1)采用dump文件交换的方式,需要编写程序,工作量大,整个交换通路运行并不稳定,缺少有效的数据监控方法和工具,时常会造成数据丢失,数据复制难以达到实时性。(2)在公安网建Dataguard方式,需要通过编程的方式对dataguard的工作机制进行修改,人工传输图像网数据库的归档日志和联机日志到公安网的备库,另外dataguard作为oracle库的一种容灾方式,在备库应用日志过程中,数据库不能正常打开,不适合数据共享应用的实际需求;(3)通过goldengate等数据同步复制工具,可较好的实现数据同步复制,一是避免了数据丢失,二是增强了数据实时性,三是可以对整个交换过程进行有效监控。通过实地测试和科学评估,上海公安选用goldengate实现海量卡口过车记录数据在图像网到公安网交换。

1.3 goldengate跨交换平台部署及配置

1.3.1 goldengate原理介绍

Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它的捕捉进程在源系统读取在线日志文件或归档日志后,进行解析,提取其中数据的变化,将相关信息转换为自定义的中间格式存在队列文件中,传送进程将队列文件通过tcp/ip传送到目标系统。目标系统接收数据变化并缓存到队列中,应用进程从队列中读取数据变化并创建对应的sql语句,通过数据库的本地接口执行。Golden Gate数据集成技术实施主要含数据抽取进程、传输进程和应用进程,源数据库和目标数据库3个进程,以及源库和目标库的2个文件。

1.3.2 goldengate的部署方式

虽然goldengate可以通过在防火墙和网闸打开指定的端口来实现TCP通信,但这些打开的端口都是大家熟知的。而且其通信协议在网络中都是明文的,攻击者非常容易,通过分析协议报文科得到数据库的IP地址、用户名、密码、数据表结构,存在严重的安全隐患。

利用文件交换相比在防火墙和网闸上打开知名端口进行协议安全的多,攻击者可以利用的机会会少很多。应用系统将需要传输的数据打包成为文件,存放在指定文件夹目录中。然后通过网闸将文件摆渡到内网指定的文件夹目录中,内网应用系统再到目录中获取,最终实现了跨网络的数据交换目的。

因此,为了实现数据的安全交换,不能使用打开网闸端口的方法直接联通两个物理网络,而是通过网闸交换goldengate源端输出文件的方式实现跨网闸数据同步交换的方式。

根据goldengate的工作原理,在位于图像网的源端和位于公安网的目标端数据库分别部署配置goldengate软件,源端的软件用来挖掘日志中的变化信息,并生成队列文件,缓存在指定的目录中。内外网交换平台读取目录中的队列文件,通过安全交换后的队列文件,缓存在公安网目标端指定的目录中,提供部署在目标端的goldengate软件应用进程,实现数据在公安网交换入库。

1.3.3 卡口数据在公安网的入库方式

因卡口数据量大且增长快,为了减轻数据存储压力和平衡数据读写负载,公安网的卡口数据分散存储在三台pc服务器中。在三个库中分别部署goldengate软件,分别创建并启动replicat应用进程,配置应用进程replicat的filter参数,实现队列文件中的变化数据合理分流实时入库在三个数据库中。Filter 参数类似于sql语句的where子句,可以实现数据的条件过虑,具体配置是在应用进程的参数文件中添加如下参数map viewall.sjkk_gcjl,target kksj.sjkk_gcjl,filter(xzqh="116" or xzqh="117" or xzqh="118" or xzqh="120" or xzqh="230");

图2为整个数据复制交换系统的原理框图:

图2 上海公安卡口数据跨网闸安全交换框图

2 结束语

通过采用数据同步复制软件,实现了海量数据跨网闸安全实时同步交换,克服了市局内外网交换平台通过数据库连接交换方式效率低的问题,解决了通过dump文件交换缺乏实时性、稳定性差,数据丢失的难题。对于公安等其他行业跨网络安全交换海量数据具有借鉴作用。

参考文献:

[1]杭州合众信息技术股份有限公司.合众安全数据交换系统[Z].2014.

[2]吴璐,杨健.基于Oracle Dataguard和网闸的内外网数据交换平台[J].计算机应用于软件,2010.

[3]oracle.Oracle GoldenGate Documentation Release 10.4.2010.

作者简介:梁昌明(1970.08-),男,山西霍州人,高级工程师,工学硕士,研究方向:数据库架构设计、数据库应用、数据库管理。

作者单位:上海市公安局科技处,上海 200042

上一篇:基于Unity3D的虚拟户型展示设计 下一篇:浅析智能优化算法