本发明专利技术提供一种检测数据库对象完整性的方法及装置,属于数据处理技术领域,该方法包括:从被检测数据库的建库初始化的脚本中提取包括被检测数据库中完整的数据库对象的第一数据库对象集;从被检测数据库的数据字典中提取包括被检测数据库中所有数据库对象的第二数据库对象集;若第一数据库对象集与第二数据库对象集不相同,将第一数据库对象集中有而第二数据库对象集中没有的缺失数据库对象,更新到被检测数据库的第二数据库对象集中,可有效避免因数据库对象缺失而给通讯系统正常运行带来的问题。
【技术实现步骤摘要】
本专利技术涉及数据处理
,尤其涉及一种检测数据库对象完整性的方 法及装置。
技术介绍
数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。其中包含多种对象,如table (列表)、index (索引)、database (数据库)、procedure (存储过程)、trigger (触发器)等。如果这些对象存在缺失,则会对应用系 统的正常运行带来较大影响,如缺失index,会导致应用系统处理数据能力大 大降低,严重者会导致应用系统处于瘫痪状态,从而导致降低电信用户对电信 运营商的可信度和运营能力。目前,造成凄t据库对象是在实际应用中缺失的原因有以下几种1) 、需求变更的需要,需要增加或者修改数据库中的对象,由于数据库应 用系统开发者的疏忽,在数据库升级脚本中遗漏部分对象或者对象增加方法不 正确,造成应用系统数据库系统中对象的缺失。这种情况产生的主要原因是数 据库应用系统开发者没有经过系统升级测试而导致。2) 、升级工程实施者的疏忽或者本身业务能力有限,在数据库升级时遗漏 升级脚本或者升级方法不正确,从而造成应用系统数据库系统中对象的缺失。 这种情况往往出现在数据库升级时升级脚本过多,而升级工程的实施者责任心 不够,升级后没有进行全面的系统测试造成的。有些对象的缺失只有在数据库 繁忙时才能体现出,而通讯软件的数据库升级一般选择在话务量低的时候,因 此升级后的进行测试,由于这时候数据库比较空闲,无法发现对象的缺失,而 当白天话务量上来后,由于某些对象的缺失,如index的缺失,导致翁:据库性 能降低,从而酿成质量事故。在实现本专利技术的过程中,发现现有技术中至少存在如下问题现有技术中4还不能够较好的解决防止数据库对象缺失的问题。
技术实现思路
为了解决上述问题,本专利技术的实施例的目的是提供一种检测数据库对象完 整性的方法及装置,可有效避免因数据库对象缺失而给通讯系统正常运行带来 的问题。为了解决上述问题,本专利技术的实施例提供一种检测数据库对象完整性的方法,包括从被检测数据库的建库初始化的脚本中提取包括被检测数据库中完整的 数据库对象的第 一数据库对象集;从被检测数据库的数据字典中提取包括被检测数据库中所有数据库对象 的第二数据库对象集;若第一数据库对象集与第二数据库对象集不相同,将第一数据库对象集中 有而第二数据库对象集中没有的缺失数据库对象,更新到被检测数据库的第二数据库对象集中。优选地,所述方法还包括在被检测数据库中建立多个临时存储数据的数 据表;将第一数据库对象集中的数据库对象的名称和特征形成SQL语句,并存 放在所述数据表中。优选地,所述方法还包括将第二数据库对象集中的数据库对象的名称和 特征形成SQL语句,并存放在所述数据表中。优选地,所述方法还包括将所述缺失数据库对象存放到所述数据表中。本专利技术的实施例还提供一种检测数据库对象完整性的装置,包括数据库完整对象提取模块,用于从被检测数据库的建库初始化的脚本中提 取包括被检测数据库中完整的数据库对象的第 一数据库对象集;被检测数据库对象提取模块,用于从被检测数据库的数据字典中提取包括 被检测数据库中所有数据库对象的第二数据库对象集;数据库对象比较模块,用于比较所述数据库完整对象提取模块提取的所述 第一数据库对象集和所述被检测数据库对象提取模块提取的所述第二数据库对象集,并得到比较结果;数据库对象更新模块,在所述数据库对象比较才莫块的比较结果为第一数据 库对象集与第二数据库对象集不相同时,用于将第 一数据库对象集中有而第二 数据库对象集中没有的缺失数据库对象,更新到被4全测数据库的第二数据库对 象集中。优选地,所述装置还包括初始化模块,用于在净皮检测数据库中建立多个 用于存放数据库对象的数据表。上述技术方案中的至少一个技术方案具有如下有益效果通过对被检测凄史 据库中的对象进行检测,可检测出被检测数据库是否缺失对象,使得数据库工 程的实施者可通过数据库恢复等方法提前解决数据库对象缺失的问题,保证数 据库系统的正常运行,提高了产品的工程质量。附图说明图1为本专利技术的实施例中检测数据库对象完整性的方法流程图; 图2为本专利技术的实施例中检测数据库对象完整性的装置框图; 图3为本专利技术的实施例中数据库对象完整性检测网络连接示意图。具体实施例方式本专利技术的实施例提供一种4全测数据库对象完整性的方法,首先,从被检测 数据库的建库初始化脚本中提取被检测数据库完整的数据库对象集(第一数据 库对象集),然后再从被检测数据库的数据字典中提取被检测数据库当前所有 的数据库对象集(第二数据库对象集),当第一数据库对象集与第二数据库对 象集不相同时,则将第一数据库对象集中有而第二数据库对象集中没有的缺失 数据库对象更新到被检测数据库中,使得被检测数据库中的数据库对象保持完 整,从而有效避免了因数据库对象缺失而给通讯系统正常运行带来的问题。为了使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合实 施例和附图,对本专利技术实施例〗故进一步详细地说明。在此,本专利技术的示意性实 施例及说明用于解释本专利技术,但并不作为对本专利技术的限定。如图l所示,为本专利技术的实施例中检测数据库对象完整性的方法流程图,具体包括以下步骤步骤101、在被;险测数据库中建立多个用于存放数据库对象的数据表; 也就是,在被检测的数据库中初始化多个本实施例需要用到的临时存储数据用的数据表,该数据表可用于存放经过处理后得到的缺失数据库对象,以及被检测数据库应该有的完整的数据库对象集,该数据库对象集包括至少 一个数据库对象。步骤102、从被检测数据库的建库初始化的脚本中提取包括被检测数据库 中完整的数据库对象的第一数据库对象集;在本实施例中,每个被检测数据库都有一个完整的数据库初始化的脚本, 步骤102就是从这个脚本中提取被检测数据库中应该有的完整的数据库对象 集,并将该数据库对象集中的数据库对象的名称(例如table、 index等)及 数据库对象的特征(例如索引的类别(簇索引、唯一索引、非唯一索引)、 字段是否非空、索引字段等等)形成SQL (结构化查询语言)语句存放在步 骤101中建立的临时数据表中,并形成一个可执行的SQL语句脚本文件,在 本实施例中,该提取的表索引情况的语句为insert into distill—indexes values (' 索引名称','索引所在的表名','索引字段名',索引类别),其中distill—indexes 就是步骤101建立的提取数据库索引的临时的数据表。将形成的SQL语句脚 本到被检测的数据库中执行,目的是在被检测数据库中将完整的数据库对象集 中的数据库对象记录存放于多个临时的数据表中,并可将第一数据库对象集命 名为ObjectAll。步骤103、从被^r测数据库的数据字典中提取包括被检测数据库中所有数 据库对象的第二数据库对象集;由于在任何类型的数据库的系统库中,都会有存放被检测数据库所有对象 的数据字典,步骤103也就是从被检测数据库的数据字典中提取被检测数据库 所有的完整的数据库对象集,并将该数据库对象集中的数据库对象的名称及特 征存放在步骤101中的多个临时的数据表中,并可将第二数据库对象集命名为 ObjectFact。步骤104、判断第一数据对象集是否与第二数本文档来自技高网...
【技术保护点】
一种检测数据库对象完整性的方法,其特征在于,包括: 从被检测数据库的建库初始化的脚本中提取包括被检测数据库中完整的数据库对象的第一数据库对象集; 从被检测数据库的数据字典中提取包括被检测数据库中所有数据库对象的第二数据库对象集;若第一数据库对象集与第二数据库对象集不相同,将第一数据库对象集中有而第二数据库对象集中没有的缺失数据库对象,更新到被检测数据库的第二数据库对象集中。
【技术特征摘要】
1.一种检测数据库对象完整性的方法,其特征在于,包括从被检测数据库的建库初始化的脚本中提取包括被检测数据库中完整的数据库对象的第一数据库对象集;从被检测数据库的数据字典中提取包括被检测数据库中所有数据库对象的第二数据库对象集;若第一数据库对象集与第二数据库对象集不相同,将第一数据库对象集中有而第二数据库对象集中没有的缺失数据库对象,更新到被检测数据库的第二数据库对象集中。2. 根据权利要求1所述的方法,其特征在于,所述方法还包括在被检测数据库中建立多个临时存储数据的数据表;将第一数据库对象集中的数据库对象的名称和特征形成SQL语句,并存放在所述数据表中。3. 根据权利要求2所述的方法,其特征在于,所述方法还'包括将第二数据库对象集中的数据库对象的名称和特征形成SQL语句,并存放在所述数据表中。4. 根据权利要求2所述的方法,其特征在于,所述方法还包括将所述缺失数据库对象存放到所述...
【专利技术属性】
技术研发人员:李良生,陈虹桥,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。