APP下载

七号信令监测系统中基于Oracle的数据同步方案研究*

2010-06-11于洪涛徐静波

电信科学 2010年2期
关键词:监测中心物化数据表

李 鹏 ,于洪涛 ,徐静波

(1.国家数字交换工程技术研究中心 郑州 450002;2.珠海高凌信息科技有限公司 珠海 519060;3.解放军信息工程大学信息工程学院 郑州 450052)

1 引言

随着我国电信行业的迅速发展,各种通信网(如固定、移动电话网)的规模在不断扩大,作为通信支撑网的七号信令网,其地位也越来越重要。早期对七号信令网进行维护的方法是使用交换机本身的功能以及借助监测仪表完成,维护手段和维护能力有很大的局限性。目前,一般采用独立的系统对七号信令网进行集中监测和管理,这种七号信令监测系统独立于电信网络设备,通过高阻跨接方式或由交换机内部分切导出的电接口终端连接方式[1],在七号信令链路上直接采集七号信令的链路数据,对各种用户部分或应用部分信令进行实时或历史微观分析,从而判断七号信令网的运行状态、运行性能以及七号信令网支撑的电信业务的运行质量、跟踪呼叫信令的过程等,以便及时发现故障隐患、查找故障点。

目前,业内的七号信令监测系统一般由前端采集设备、监测中心服务器、监测终端组成,形成了包括本地级、地区级、总部级的三级分布式七号信令监测体系结构,具体如图1所示。

其中,每级监测中心均可并行提供信令监测和分析维护功能,这就包括对下级中心进行信息同步、数据汇总,以便根据需求进行后继的数据挖掘和信令分析工作。同时,还需要对下级中心采集信令消息进行冗余备份,以便故障恢复。因此,系统内部需要实现上下级信令监测中心间的数据同步以便实现上述功能,本文对此同步方法展开研究。

2 数据同步技术分析

2.1 主流数据同步技术

(1)远程镜像

远程镜像又叫远程复制,是保持远程数据同步和实现灾难恢复的基础[2]。它利用物理位置分离的存储设备所具备的远程数据连接功能,在远程维护一套数据镜像,为地理上分散的站点提供联机实时数据复制。远程镜像采用第三方基于文件的迁移与Oracle基于日志的恢复机制以实现数据同步,但需要特殊的软硬件支持,如采用光纤连接主备数据库系统,需要EMC软件等,造价昂贵,成本很高。

(2)数据卫士(data guard)

为了实现数据的同步可以考虑使用Oracle 9i Data Guard。它通过将主数据库的重做日志传到并应用到在线备用数据库,使备用数据库与主数据库保持同步[3]。应用中分为同步和异步两种方式。其主备用切换时需重启数据库,后期维护工作量巨大。

(3)数据库的触发器

触发器是现在大型关系型数据库都具备的功能,可以使用数据库触发器实现基于表的数据同步。当对表执行特定操作时,就会引发数据库触发器。以Oracle为例,在创建触发器之前,须为该触发器创建一个数据库链接指向远程数据库。这种方法虽然能够实现数据同步,当对端数据库故障时,通过数据库链接的更新操作会有较长的响应时间,且频繁操作表上的触发器也会降低数据库性能。

(4)数据库的高级复制

主流的大型关系型数据库都具备高级复制功能,比如Oracle、SQL Server、Sysbase等。数据库高级复制主要是在分布式数据库环境中维护表副本的过程,在一个复制环境中任何对复制对象的更新都会反映到其他站点对应的对象中,实现数据同步。复制关系可灵活配置,复制对象支持表、索引和视图等类型。

针对本系统来讲,远程镜像造价过于昂贵;Data Guard主/备数据库在切换时需要重启数据库,且同步过程复杂,性能欠佳;数据库触发器性能差,可维护性不好;高级复制因其低成本、配置方式灵活、无缝切换等优点被选择应用于此系统。

2.2 高级复制方法的应用分析

在七号信令监测系统中,各级监测中心对数据同步和实时性要求不高,且各级中心对收集信令原始数据无修改要求,可利用Oracle高级复制的多级物化视图实现,在一些文章中有相关研究,基本的方法如下。

· 每个监测中心数据库均有一个信令数据表,用来统一存储所有信令消息。

· 采用可更新实体化视图机制。一级监测中心数据库设置为主数据库,二级监测中心数据库和三级监测中心数据库是从数据库,所以整个分布式数据库系统是“一主多从”的结构。一级监测中心信令数据表A1作为实体表,二级监测中心信令建立以A1为实体表的可写物化视图A2,三级监测中心创建以A2为实体表的可写物化视图A3,所有二级管理中心数据库站点都是基于一级中心数据库主站点的物化视图站点,并且每个三级中心数据库是作为它管辖的二级中心数据库的目标站点[4]。这种方法中,每个监测中心采集的信令数据统一存储到一个数据库表中,这样既便于监测终端进行数据分析,数据库复制关系建立步骤也较为简单,但在实际应用中也存在以下问题。

· 信令数据单独存储到一个数据库表,此表在运行阶段会迅速膨胀,不利于后台进行数据分析。下面,就信令数据表容量做一个估算。假设一个中等规模的三级监测中心下管理2个信令点,每个信令点有100条电路,一个中继电路平均每小时有 28个呼叫,一个TUP/ISUP呼叫平均有 9条消息(IAM、SAM×4、ACM、ANC、CLI、RLG),每天此信令点呼叫记录数约为 28×9×100×24=64.08 万条,此三级信令中心每天的数据量为64.08×2=128.16万条,此中心十天累计数据量约为1 280万条,对一个千万级数据表查询统计操作的响应时间较长,很难让用户满意。

· 在可更新物化视图中,对实体表的更新操作可在目标站点物化视图中实现按主键的快速刷新。但对目标站点物化视图的更新则需通过延迟事务,层层推回上级中心数据库,再逐级向下进行刷新,耗时较长,特别是针对大数据表的刷新,速度更难以接受,无法体现物化视图快速刷新的特性。在目前的应用中,恰恰是从数据库的二、三级站点对应物化视图需要进行频繁的更新。

3 高级复制方法的优化及实现

3.1 方案优化

针对系统的需求以及常用高级复制方法存在的不足可作如下改进。

(1)信令数据分表存储

信令数据表按日存放,将信令消息分开存储到多个表中,以避免单一表的过度膨胀。

信令数据表分两类:本地采集数据表和下级采集数据表,统一命名为SIGNALYYYYMMDD_LNN。其中,YYYYMMDD表示8位的年月日,LNN表示3位的监测中心编号,三级中心数据库无下级采集数据表,一级、二级中心数据库的两类数据表都存在,各个监测中心可预先配置各中心编号间上下级的隶属关系。

N级中心N+1级中心数据库收集数据(1≤N<3),收集的数据包含上述两类信令数据表信息,定义下级收集数据配置表(命名为SUBCDCFG),并存储相关信息,表的结构见表1。

(2)调整信令数据表结构

增加监测中心编号(NCID)和采集点标识(NMPC)字段,与原表主键字段一起,作为新的联合主键。监测中心编号(NCID)用以区分不同的监测中心,命名为LNN,3位数字统一编码,L表示本监控中心等级,取值1~3,NN表示此中心在本级编号,取值00~99,如301表示一个编号为01的三级监控中心。采集点标识(NMPC)记录本信令消息采集自哪个接入点,存储此信令点点码。这样三级信令数据表可保持一致结构,以便上级中心作后继数据处理。

(3)更改各级数据库站点实体表——物化视图对应关系

为了提高物化视图刷新效率,将下级站点更新频繁的表作为上级站点的实体表,所有二级管理中心数据库站点都是基于三级中心数据库主站点的物化视图站点,并且每个一级中心数据库是作为它管辖的二级中心数据库的目标站点,这样就形成了与原来相反的复制体系结构。

每个中心可根据业务需求,以中心为单位灵活地对信令数据采集/上传进行配置。最终形成的多级物化视图层次结构如图2所示。

在二、三级中心可为实体表建立物化视图日志表,以实现快速刷新。

(4)物化视图动态生成

信令消息具有实效性,采集设备生成信令消息的时间戳总是本日的,对应的信令数据表是按日存放,所以当前操作的只是本日对应的信令数据表,历史表是不会再被更新的。每日可在系统闲时定时生成新物化视图并移除过期物化视图,整理刷新组。

表1 数据配置表的结构

3.2 复制关系配置

建立高级复制环境有两种方式:一种是采用 Oracle企业管理器中的复制管理工具来管理复制环境;另一种是采用后台脚本的方式来实现,相关配置见Oracle手册[5]。另外,需在物化视图站点创建一刷新组,定时物化视图的控制刷新,周期可设定为30 min。

3.3 动态创建物化视图

物化视图的动态创建由数据库JOB实现,可按照如下策略维护各站点的物化视图。

· 定时生成3日内两类信令数据表(带主键),针对这些表生成对应视图日志,以便实现快速刷新;

·定时生成3日内物化视图并加入刷新组,以ON

PREBUILT TABLE/REFRESH FORCE模式创建,ON PREBUILT TABLE参数表示以现有表创建,以便即使物化视图被删除,对应实体表依然存在,REFRESH FORCE参数可实现快速刷新,默认为只读;

·将3日前物化视图移出刷新组;

·定时删除3日前物化视图以及物化视图日志表。

3.4 性能对比

本文就方案改进后的系统效率做了测试,测试环境如下。

(1)硬件

采用惠普 ProLiant DL580,CPU:Intel Xeon处理器2.80 GHz×4个,内存:4 GB双路交叉 PC2100 DDR SDRAM内存,外存:热插拔SCSI硬盘容量72 GB×2,以太网卡:2个Compaq NC7781 PCI-X吉比特位网卡。

(2)软件

采用 Windows Server 2003和 Oracle 9i。

(3)测试预置条件

按照前面对数据量的估算,每天每个三级中心的信令数据表容量约为128万条记录,以10天作为一个测试单元,假设按照改进方案,系统存储数据到1个数据表SINGNAL2009中,改进后系统分开存储到10个表中(SIGNAL20090101~SIGNAL20090110),其中,SINGNAL2009约有记录1 280万,每个SIGNAL200901xx中约有记录128万,均在主键上建索引。

(4)测试项目

· 查询统计性能(如图3所示):计算某一信令点1日内数据总和 ;计算某一信令点3日内数据总和;计算某一信令点10日内数据总和。

· 物化视图刷新时间(如图4所示):增加1 000条记录刷新耗时;增加1万条记录刷新耗时;增加10万条记录刷新耗时。

通过测试可以得出如下结论。

· 对于查询统计操作来说,针对涉及全表遍历的求和操作,执行速度有明显提高,特别是较短日期范围内的操作,提高更为显著。

· 对于物化视图刷新方面。由于改进前物化视图的主体表均在上级数据库,每次更新操作需通过延迟事务推入上级数据库站点,耗时较久,无法实现快速更新,并占用大量资源,其刷新周期一般较长。改进后,主体站点数据表按日期分表存储,物化视图站点也对应创建多个物化视图与之一一对应,此时,对应物化视图为简单物化视图,可实现按主键的快速刷新,刷新时间大大缩短,进而可定义一个较短的刷新周期,如30 min,从而大大提高了上级站点数据同步的实时性和效率。

4 结束语

本文使用Oracle高级复制的物化视图来解决分布式七号信令监测系统的数据同步问题,针对系统采集数据的时效性特点,采用信令数据分表存储,物化视图动态管理等手段,实现了上下级系统间数据的快速同步,大大提高了短期数据的查询统计效率,有效保证了系统的正常运行和数据的完整性。但是,分表存储和物化视图的动态生成也在一定程度上提高了应用层访问和数据配置的复杂度,在工程应用中需要得到进一步的改进。

1 田婷婷.七号信令监测系统的实现与应用.广东通信技术,2008,28(7)

2 远程镜像技术.http://www.aimite.com/doc009.htm

3 龚艳,张世钱.用Oracle 9i dataguard构建系统容灾.计算机应用与软件,2006,23(10)

4 刑朝华,季新生.Oracle高级复制技术在七号信令网管系统中的应用.计算机工程,2007,33(1)

5 Oracle Technology Network,Oracle Documentation.http://technet.oracle.com

6 易成就等.Oracle数据库内存优化的讨论与配置.微计算机信息,2008(1-3):168~170

7 盖国强.深入解析Oracle.北京:人民邮电出版社,2009

8 叶建位,苏宏业.实时数据库系统关键技术及实现.计算机应用研究,2005(3):45~47

猜你喜欢

监测中心物化数据表
黑龙江省节能监测中心
物化-生化工艺处理页岩气采出水的工程实践
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
基于列控工程数据表建立线路拓扑关系的研究
砥砺奋进的五年
学习考察,这十个城市是首选
责任源于使命——访辽宁省环保厅核与辐射监测中心副主任林殿科
重看图形界面“扁平化”与“拟物化”之争——关于设计思维的探讨
物的人化与人的物化——当代舞台美术的表演