在线计费系统中内存数据库的研究与应用

合集下载

中国联通在线计费(OCS)技术规范汇报

中国联通在线计费(OCS)技术规范汇报

总体概述 系统定位 IT系统划分 IT系统划分 在BSS中定 BSS中定 位 在计费域中 定位 建设要求
在线计费系统(OCS)位于BSS的服务支撑层, 同综合计费帐务系统共同组成计费功能域
4
系统定位- 总体概述 - 系统定位-在计费域中定位
总体概述 系统功能架构 运维管理 外部设备改造要求 系统技术架构 部署架构 系统技术要求 附录
数据业务
增值业务
OCS与本省SACP连接,完成语音业务的在线计费; OCS与本省SMSC连接,完成点对点短消息业务的在线 计费; OCS与本省GGSN连接,完成数据业务的在线计费; OCS与本省VASP/VAC连接,完成增值业务的在线计费; 集团总部VASP/VAC与各省VASP/VAC连接,用户订购 的集团总部增值业务由集团总部VASP/VAC路由到归属省 VASP/VAC,再由归属省VASP/VAC触发到本省OCS。
对关键性应用服务器主机可采用双机备份的冗余配置, 保证系统无单一故障点,发生故障后能够快速切换到备机, 待故障主机修复后再切换回来。 对关键性应用服务器可采用N+1备份方式组成集群。集 群中N台主机的某一台主机出现故障时,业务应该由集群 中备份主机接管,不影响OCS系统的使用。 OCS系统应该具备两种过负荷处理的能力,静态过负荷 控制和动态过负荷控制。 静态过负荷控制:监视同时对话的数目,如果超 出限制,则过负荷掉超出的部分。 动态过负荷控制:系统监视对话处理的相应情况, 以此判断系统已经过负荷。在呼叫量超出系统处理 能力时,可以分多个级别屏蔽掉一定比例的呼叫或 操作的接入,保持当前正在处理或者允许接入的呼 叫,保证系统在允许的负荷内正常运行。当呼叫量 恢复到正常水平时,可以自动取消过负荷屏蔽,恢 复正常处理。
15

探讨在线计费系统OCS的技术架构与测试实现

探讨在线计费系统OCS的技术架构与测试实现

探讨在线计费系统OCS的技术架构与测试实现OCS(Online Charging System)是一种充值计费系统,其主要用于计费和结算在线服务的费用。

OCS的核心是计费系统,其中包括了统计使用量、计价策略管理、开票和支付等功能。

本文将主要探讨OCS的技术架构和测试实现。

一、OCS的技术架构OCS的架构非常复杂,主要包括以下几部分:数据采集系统、业务支撑系统、计费系统和结算系统。

数据采集系统:这是OCS的数据源。

数据采集系统必须能够把所有与价格相关的数据,如数据量、在线时间、流量等,汇总到OCS中。

一般来说,这个系统会通过SDK等API来和其他系统进行交互,以获取数据。

业务支撑系统:这个系统主要用于管理计价策略、制定价格计划和维护用户信息。

这个系统也可提供API接口,被其他系统使用。

计费系统:这是OCS最核心的部分。

计费系统需要按照对应的计价策略来计算费用。

然后,计费系统将费用的详细信息和账单信息发送到支付系统和结算系统。

结算系统:这个系统主要用于结算和管理所有账单。

结算系统需要将计费系统产生的账单进行汇总和处理。

一般来说,结算系统是负责向客户提供账单的系统。

二、OCS的测试实现在构建OCS之前,必须进行各种测试。

考虑到OCS架构的复杂性,测试可能遇到各种技术难题。

下面是OCS的测试实现过程和技术要点。

1. 单元测试在编写代码时,OCS需要建立单元测试框架。

单元测试是代码测试的基本单位,这个测试可以帮助对一个模块或者函数进行完整性的测试。

单元测试也有助于减少debugging时间和代码维护。

2. 集成测试在OCS实现当中,集成测试也是至关重要的部分。

集成测试需要对OCS的不同模块进行测试并验证它们彼此之间的交互。

这个测试需要保证整个系统的功能正确性、兼容性、一致性和稳定性。

3. 系统测试系统级测试要对整个OCS应用进行测试。

在这个测试过程中,必须考虑到各种可能出现的测试场景和问题。

随着测试的进行,可以不断地优化测试用例来最大化系统的覆盖度。

大数据处理中的内存数据库技术

大数据处理中的内存数据库技术

大数据处理中的内存数据库技术在互联网时代,数据已经成为企业的重要资产,通过合理的数据处理和分析,企业可以获取更多的价值和竞争力。

而对于大数据的处理,内存数据库已经成为了不可或缺的技术。

本文将深入探讨大数据处理中的内存数据库技术。

一、内存数据库的优势传统的关系型数据库一般采用磁盘存储数据,因此需要频繁地进行磁盘I/O操作,导致处理效率较低。

而内存数据库将数据存储在内存中,避免了磁盘I/O操作,处理速度得到大幅提升。

另外,内存数据库可以实时访问、分析数据,使得企业更加敏捷和迅速地响应市场变化。

二、内存数据库的缺陷虽然内存数据库有很多优点,但是也存在一些缺陷。

首先,内存价格昂贵,对于大量数据的处理,需要消耗大量的内存资源,由此也带来了高昂的成本。

其次,由于内存数据库的数据存储在内存中,一旦系统崩溃或出现故障,数据将会全部丢失,带来的损失也会非常巨大。

因此,内存数据库需要更为复杂和完善的备份和恢复机制。

三、内存数据库技术的应用场景内存数据库技术的应用场景非常广泛,特别是在大数据处理中,内存数据库发挥了巨大的作用。

比如,对于金融领域来说,内存数据库可以快速地存储和访问海量的交易数据和股票数据,帮助企业进行实时的分析和决策;对于电商企业来说,内存数据库可以迅速存储和访问大量的用户数据和物流数据,从而优化物流配送服务,提高用户满意度和转化率。

四、内存数据库技术的发展趋势随着大数据时代的到来,内存数据库技术也在不断地发展和完善。

未来,内存数据库技术的应用场景将会更加广泛和深入,还会不断地引入新的技术,以更好地满足企业的需求。

比如,云计算和分布式计算的兴起,将会极大地提高内存数据库的性能和可靠性,使得内存数据库更加适用于大规模的数据处理场景。

总之,内存数据库技术已经成为大数据处理中的重要技术之一,其优越的性能为企业带来了更多的竞争力和价值。

在未来,内存数据库技术还将不断发展和创新,在不断满足企业需求的同时,也有望为整个行业带来更大的进步和发展。

内存数据库及其在实时计费系统中的应用

内存数据库及其在实时计费系统中的应用
力 ,非常适合于移动通信的实时计费系统。本 文通过综述 内存数据库技术特点 ,针对移动通信 实时计费的要
求, 将内存数据库技术应用于实时计费系统,阐述了实时计费系统的应用模型、内 存数据库的系统结构及功
能要求 。
关键词 内存数据库; 计费系统;实时计费 中图分类号 T 995 N2. 文献标识码 A 文章编号 10- 59(02 3 06 — 4 08 59 21)0— 02 0
TELEc oM ENG | EER| N NG TEcHN | s AND sT NDA RDl c A zATl N o
内存数据库及其在实时计费系统 中的应用
武 振字 ( 中国移 动通 信集 团设 计院有 限公 司,北京 10 8 ) 00 0
摘 要 内存数据从传统的磁盘数据库发展而来,把整个数据表存放到内存中,极大地提高了数据库系统的处理能
的结果 ,计算话 单的费用。从应用 的特点来看 ,由于计
而会产生一些根本性的变化。内存数据库 ( MD )与 M B
传统的磁盘数据库 ( R B)主要差异如表 l D D 所示 。 内存数据库系统带来的优越性能不仅仅在于对 内存 读 写比对磁盘读写快上 ,更重要的是,从根本上抛弃了 磁盘数据管理 的许多传统方式,基于全部数据都在 内存 中管理进 行了新 的体系结 构的设计 ,并且在数据缓存、
确的服务, 对运营支撑系统提出了很大的挑战。 传统
数据库在这些方面显得力不从心 ,而内存数据库由于大 量数据在 内存 中运行,没有 过多的 IO 操作 ,能较好 /
响,当数据量很大, 操作频繁且复杂时, 就会暴露出很
多问题。
近年来,内存容量不断提高, 价格不断下跌,操作
计算机进入了6 4 地满足实时性、灵活性、精确性的要求,在电 信领域得 系统已经可以支持更大的地址空间 (

内存数据库的使用场景

内存数据库的使用场景

内存数据库的使用场景
内存数据库是将数据存储在内存中的数据库系统,相比传统的磁盘数据库,它具有更高的性能和响应速度。

以下是一些内存数据库的使用场景:
1. 实时数据分析:内存数据库能够快速加载和处理大量数据,适用于实时数据分析场景,例如在线广告投放、实时风险分析等。

2. 缓存:内存数据库可以用作缓存层,将常用的数据存储在内存中,以提高访问速度和响应性能。

这对于高并发的应用程序和Web服务非常有用。

3. 实时数据处理:内存数据库对于需要快速处理和响应实时数据的应用程序非常适用,例如股票交易系统、实时订单处理等。

4. 临时数据存储:内存数据库可以用于临时存储计算过程中的中间数据,以提高计算性能。

这对于大数据处理和复杂计算任务非常有用。

5. 互动游戏:内存数据库能够处理高并发的游戏交互数据,例如玩家位置、角色状态等,保证游戏的流畅性和实时性。

总之,内存数据库适用于需要高性能和实时响应的场景,特别是对数据访问速度和响应时间有较高要求的应用程序。

但需要注意的是,由于内存数据库将数据存储在内存中,数据的持久性和容错能力相对较弱,不适用于需要长期存储和大容量数据的应用。

在线计费系统的设计和应用

在线计费系统的设计和应用
探 索 与 研 究
投 资与创 业 2 1. 02 8
在线 计费系统 的设 计和应用
周 政
( 山东联通东营分公司信息化支撑中心 山东 东营 2 7 0 ) 5 0 0
摘 要: 着3 随 G业务 的迅 猛发展 , 通信 运 营对 于 支撑 的要 求越 来越 高。根 据 电信业 务近 几年 的发展 趋 势 , 数
据业务将是 WC MA的主要增长点, D 成为未来的主要发展 方向。因此 中国联通提高低端用户的 A U 值 , RP 着力 点在 于快速发 展数 据 业务 。 目前移 动 网通信 业务 预付 费品 牌 的欠 费十分 严重 , 而 同时智 能 网业务 虽然 可以有 效控 制欠费, 但却不能灵活支撑数据业务。 因此研 究一种既能 支撑发展迅猛的数据业务 , 同时又可以有效控制欠费的 支撑 系统. 成为 目前通信支撑的迫切 需求。实际使 用表 明, 在线计费软件技术 , 既实现 实时信 用控制 , 又可以支撑 灵活资费等。 可以有效的控制欠费问题 。 弥补 了智能网的不足, 增强 了数据业务的计 费能力 , 增强 了预付 费品牌的 多业务融合计费能力, 能够更加灵活的支撑市场营销策略。为数据业务提供在线计费的最佳手段 。 是达到 目前通
有力 支 撑 。 加在 1~00 左右。 0 10 倍
() 3 具备灵活智能 的管理功能 系统管理涉及众多专业 知识 ,系统支撑人员无法全 面掌握 全部业务及系统专业知识 ,因此 O S在线计费系统 能够 提供 各 C 种直观 、 有效 、 简易 的系统管理工具 。
2 在 线 计 费 系 统 的 总体 介绍 . 21 线 计 费 系统 介 绍 .在
指在通信结束后各个 网元生成 C R. 费系统根据 C R文件进 D 计 D 行相 应 的计 费处理 ; C O S主要 是指参 与通信过 程控制 的计费 系

内存数据库在电信计费系统中的应用

内存数据库在电信计费系统中的应用

6.加 密技术 的应用
加 密技术 的应 用是 多方面的 ,但 最为广泛 的还 是在 电子 商 务 和 VP 上 的 应 用 . N 6 1 电子商 务方面 的应 用 .在 电子商务 ( -b sn s )要 求顾 客可以在网上进 行各种商 E uies 务活 动 ,不 必担心 自己的 信 用卡 会 被人 盗用 。在过 去 ,用 户 为 了防止信 用卡 的号码被 窃取到 ,一 般是通过 电话 订货 ,然后 使用用 户的信用 卡进行 付款 。现 在人们 开始 用 RS 用卡 交 易的 安全性 ,从
而 使 电子商 务走向 实用成 为可 能 。 NE S AP T C E公司提 供了一种基于 R A和保密密钥的应 用于 S 因特 网的技 术 ,被称 为安全插 座层 (e u e S c e s a e , S c r o k t L y r SSL ) 。 SL . S 3 0用一 种电子证 书 ( lcrc c riiae eeti e tf t )来实行身 c 份 进行验证后 ,双方就可 以用保 密密钥进行 安全的 会话了。 它 同时 使用 “ 称 ” 和 “ 对 称 ”加 密 方 法 ,在 客 户 与 电 子 对 非 商 务的 服务 器进行 沟通 的过 程 中 ,客 户会 产生 一个 Se s 0n si
S a r Ace n算法是 基于大数不可能被质因数分解假设的公 h mi— 1ma ) ] 钥体 系。简单地说就是 找两个很 大的 质数 。 一个对外 公开 的为 “ 公钥 ” ( b i ke ,另一 个不 告诉任 何人 ,称 为 ”私 Pr 1 C y) 钥” ( rv t e ) P iae k y 。这两个密 钥是 互补的 ,也就是说用公钥加 密 的密文可以用私钥 解密 ,反过来 也一样。

内存数据库机制的使用研究报告

内存数据库机制的使用研究报告

int4 四个字节的带符号整型(-2147483648..2147483647)
int8 八个字节的带符号整型(-2**63..2**63-1)
real4 四个字节的ANSI 浮点型
最后只需要将类进行注册:REGISTER(Class Name);
D:游标
游标有两种模式: dbCursorViewOnly,dbCursorForUpdate
定义举例dbCursor<Class Name> instance (dbCursorForUpdate);
提供了数据库的改、删、查方法接口
影子根页算法概述:FastDB数据库中每条对象都具有唯一的标识符(OID),用作一个数组(对象索引)的下标,元素值表示对象的一个句柄,在FastDB数据库中存在两个索引(当前索引和影子索引),当某个对象第一次被修改时,它会创建一个副本,当前索引中的对象句柄被修改指向副本,影子索引仍然包含一个指向该对象原始版本的句柄。所有更改发生在副本上,FastDB在对象索引的一个特殊位图页上标记出哪个索引包含修改过的对象句柄。
内存数据库机制的使用研究报告
相对于传统磁盘数据库,内存数据库通过将数据完全加载到内存,在内存中实现对数据的管理,在数据同步、数据传送、事务处理、并行操作等方面进行了相应的改进设计,使得内存数据库在处理数据上能够比磁盘数据库快得多,可以有效地解决计费系统中信控、实时累账等部分对系统响应要求高的问题。
B:提供了一个灵活方便的应用程序语言接口,能够方便写出查询等语句。
2、 工作原理
FastDB是一个高效率的内存数据库系统,在磁盘上的数据库文件和使用该数据库的每一个应用程序占用的虚拟内存空间相映射,这样取消了数据文件和缓冲池中的数据传输。再将整个文件数据读入内存,并且使用了高性能的锁工具实现了只读模式线程间、单个更改模式线程和多个只读模式线程间的并发执行。FastDB通过位图实现对内存进行分配,最小单位块是分配量子(16字节)。如此大大提高了数据引用的局部性(对象数据尽可能分配在连续的内存区域),最小化了修改页的数目和减少了事务提交时间。事务提交协议基于一个影子根页算法,对数据库执行原子更新操作,恢复效率很高,在存储数据结构上可以采用T-tree结构(T-tree和AVL-tree相似,只是T-tree中每个节点中顺序存储了多个值),对于大量相似重复性数据的查询性能相当高;也可以采用Hash存储,这是用关键字段定位表中记录的最好办法(采用等号进行查询)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在线计费系统中内存数据库的研究与应用【摘要】为了提高现有在线计费产品在国际市场的优势,提出专为计费系统内存数据库Quick Memory DataBase(简称QMDB),同时能够无缝的与现有系统进行对接,并将CustCache、RuleCache进行替换,简化现有系统的复杂度,降低系统的耦合度。

实验证明,可以在各个计费版本中进行推广,为在线计费系统提供一套完整的、可控的解决方案。

【关键词】QMDB;内存数据库;在线计费系统;计费数据;TimesTen0引言图1 系统结构图为了提高现有的在线计费产品在国际市场的优势,决定通过自主研发一套高度独立的、快速的、安全的、易用的内存数据库,来代替TimesTen[1],同时能够无缝的与现有系统进行对接,并将CustCache、RuleCache进行替换,简化现有系统的复杂度,降低系统的耦合度。

通过这套系统,可以在各个计费版本中进行推广,为在线计费系统提供一套完整的、可控的解决方案。

这个专为计费系统而生的内存数据库就是Quick Memory DataBase,本文简称QMDB或者MiniDB。

本文主要是针对计费领域中的数据处理,考虑了计费数据的特点和技术难度,摒弃TimesTen的一些特性,增加几点功能:支持多平台运行,QMDB也必须能在AIX、HP、Solaries、Linux和Windows平台上面运行。

这是设计的第一个要求,其次,针对计费系统的高可靠性和实时性,QMDB必须能够应对系统发生故障的例外情况,就是主备机同步的。

第三,由于计费系统的处理数据都存于Oracle数据库中,所以,QMDB也必须要支持数据与Oracle系统的同步[2—3]。

1系统结构图图1说明:a)系统结构图中右边的虚线部分表示与其他主机进行数据传输。

b)接口进程G通过消息方式与其他进程交互,不仅限于数据接收进程F,还可以包括Oracle数据更新进程(指Oracle数据变更后,数据需要同步过来)、冲值进程、开户进程、SID等等没,只要这些进程满足我们约定的格式要求就可以。

c)外部系统(指除去本机上面运行的计费相关进程),所有涉及非只读表的修改(包括插入、更新、删除)都必须通过接口进程G处理,对于Java进程可以直接从Oracle读取数据,对于C++的程序,则可以通过系统接口直接访问。

d)本次设计主要考虑主要需求,对于像远程客户端的设计、ODBC设计,暂时不予考虑,随着项目的深入再追加设计。

e)程序中关于数据存储,采用INT8、INT16、INT32、INT64来表示,而不是用short。

f)Int、long等表示,方便直观。

2主备机同步模块2.1主备同步相关配置配置文件的配置QMDB的配置文件是以QuickMDB_XXX.xml命名的,其中“xxx”为内存数据库名,为大写。

具体配置项的含义以及配置参考《QuickMDB配置说明》,在这里主要突出与主备机同步模块相关的配置项:is—rep这个需要配置成“Y”,如果配置为“N”则不启动主备同步进程;rep—type 这表的列的一个属性,这个配置项需要配置成“MDB2MDB”,表示是从active同步到standby。

2.2QMDB数据同步到备机应用程序QMDB里的数据,这个数据需要同步到备机,以保证QMDB与备机的一致。

2.2.1流程说明1)应用程序对QMDB变更的同时将变更动作以以下的形式写入主备机刷新缓存队列:2)mdbFlushRep进程从刷新缓存队列中取出数据并生成相应的文件,具体情况如下:初始化生成的文件名为Rep_***,其中***为进程ID,当主备机同步缓存中的记录条数达到2000条的时候或同步时间间隔超出配置大小(配置项:log—time)或文件大小超出配置大小(配置项:file—size),则重命名Rep_PID 为Rep_PID.xxxx.OK,其中xxxx为文件序列号。

并重新生成Rep_***(其中***为进程ID)文件。

3)启动mdbRep进程用于读取文件记录,并转换成相应的SQL语句发送备机执行。

2.2.2流程操作1)从日志目录中获取Rep_xxxx.*.OK文件(其中xxxx表示进程ID,*表示文件编号)(.ok文件才会被同步);2)解析Rep_xxxx.*.OK文件中的每条记录,生成相应的SQL并形成主备交互协议报文发送到备机执行,处理完后删除Rep_xxxx.*.OK,(考虑性能,都采用异步方式,不等待备机端响应结果)。

2.3启动逻辑第一次启动时,先要判断对端是否已经启动,如果对端没有启动,则本机直接从Oracle上载数据,上载完毕,数据库处于正常运行状态。

如果对端已经启动,则首先从备机上载数据,发送“数据从备机上载”的命令。

这个流程是按照单表进行的,表上面有状态,主机收到同步的指令后,会把所有需要同步数据的表状态设定为“待同步”,然后取一个表,将其状态改为“正在同步”,此时这个表的变更数据需要落地,当数据同步完毕,表状态变为“正常同步”,换句话说,所有同步的文件都须要落地。

当所有的表都同步完毕,数据库处于正常状态。

流程说明:1)应用程序对QuickMDB变更的同时将变更动作以一下的形式写入主备机刷新缓存队列:2)mdbFlushRep进程从刷新缓存队列中取出数据并生成相应的文件,具体情况如下:初始化生成的文件名为Rep_***,其中***为进程ID,当主备机同步缓存中的记录条数达到2000条的时候或同步时间间隔超出配置大小(配置项:log—time)或文件大小超出配置大小(配置项:file—size),则重命名Rep_PID 为Rep_PID.xxxx.OK,其中xxxx为文件序列号. 并重新生成Rep_***(其中***为进程ID)文件。

3)启动mdbRep进程用于读取文件记录,并转换成相应的SQL 语句发送备机执行。

流程操作:1)从日志目录中获取Rep_xxxx.*.OK文件(其中xxxx表示进程ID,*表示文件编号)(.ok文件才会被同步);2)解析Rep_xxxx.*.OK文件中的每条记录,生成相应的SQL并形成主备交互协议报文(见上面的协议说明)发送到备机执行,处理完后删除Rep_xxxx.*.OK,(考虑性能,都采用异步方式,不等待备机端响应结果)。

3Oracle同步模块3.1详细描述1)QMDB全量上载Oracle数据是在QMDB创建这个环节完成的,当创建好表空间,表结构等的时候就开始上载数据了。

上载Oracle中哪些表的数据是根据QMDB的配置项(QuickMDB_xxx.XML)来决定的,即创建了哪些表就需要上载哪些表的数据例如:图2XML内容,配置了表cust,上载的时候就会上载oracle中cust表的数据2)为了提高上载效率和速度,QuickMDB采用了多线程上载的方法,即为每个表空间创建一个线程,每个表空间的下的表就用对应的线程加载。

3)上载步骤:(1)根据配置项拼装出查询语句,插入语句等;(2)根据查询语句得到oracle的返回结果集;(3)根据结果集拼装插入语句,插入到QuickMDB中。

3.1.1验证同步结果启动mdbSQL,命令如下:mdbSQL dsn名输入如下命令:select count(*)from 表名查看纪录数是否和oracle数据库的纪录数相同3.2Oracle增量同步到QMDB由于某些原因Oracle数据库表中的纪录优先于QuickMDB发生变化了,这时候需要将Oracle表中的增量的纪录同步到QuickMDB中,以保证Oracle表和QuickMDB表的数据一致性。

3.2.1详细描述假设A表发生增量变化,同步流程如下:1)Oracle中存在一个对应于A表的触发器,当A表发生变化时,触发器会向MDB_CHANGE_NOTIF表插入一条描述A表变化的纪录,结构如表1。

表1MDB_CHANGE_NOTIF表结构2)mdb_change_notify_seq表结构如表2。

表2mdb_change_notify_seq表结构根据dsn_name查询mdb_change_notify_seq表,得到Update_time,然后用Update_time去查询MDB_CHANGE_NOTIFf表,查出MDB_CHANGE_NOTIF 表中Update_time比mdb_change_notify_seq表中Update_time大的纪录,即查出还没有更新的纪录,根据查出纪录的Key_info和Table_name字段找出需要更新呢的整条纪录更新到QuickMDB中。

3)oracle中存在Job,定时的扫描mdb_change_notify_seq表,找出其中最小的Update_time,然后用该Update_time去删除MDB_CHANGE_NOTIF表中所有时间比Update_time小的纪录,即删除所有IP已经更新过的纪录。

3.2.2样例mdb_change_notify_seq表存在一条纪录:ip:10.40.45.4;dsn_name:mdbTest;update_time:2010—11—15 01:00:00mdb_change_notify表存在一条纪录:charge_notify_id:1;Table_name:cust;Key_info:5;Update_time:2010—11—15 02:00:00;Action_type:I从mdb_change_notify_seq表中纪录看出,mdbTest最后一次更新时间为2010—11—15 01:00:00,而同步表中有一条纪录,update_time为2010—11—15 02:00:00,比最后更新时间还要晚,也就是这条记录还没更新,cust的主键为cust_id,通过Key_info:5,得到如下查询语句:select * from cust where cust_id = 5,执行得到需要更新的纪录,又根据Action_type:I,得知更新操作为插入,于是组装Insert语句,插入到QMDB中,并更新mdb_change_notify_seq表的update_time字段为2010—11—15 02:00:00。

3.2.3验证同步结果启动mdbSQL,命令如下:mdbSQL dsn名输入如下命令:select count(*)from 表名查看纪录数是否和oracle数据库的纪录数相同4小结引入QMDB内存数据库系统后,对于计费系统带来的一些明显的优势。

首先,QMDB作为一个独立的系统,通过类似ODBC接口的形式,被应用程序调用,采用动态连接库的方式加载到应用系统中,QMDB的任何变动和升级,都不会影响到应用程序,所以系统可以在不影响应用的情况下升级、修正;其次,可以解决系统中存在多种数据的情况,因为目前系统中的数据存储机制非常复杂,有Oracle数据、TimesTen数据、CustCache数据和RuleCache数据,每次变更表结构或者增加表信息,都需要变动相应的应用代码,这给应用带来了一定的复杂度和不稳定性,开发人员不得不抽出一定的时间进行开发、验证,测试也要分配人员进行相关的测试验证,这样毫无疑问会分散开发、测试人员的精力。

相关文档
最新文档