CN102096671A - 一种boss数据库升级脚本的生成方法和设备 - Google Patents
一种boss数据库升级脚本的生成方法和设备 Download PDFInfo
- Publication number
- CN102096671A CN102096671A CN2009102137949A CN200910213794A CN102096671A CN 102096671 A CN102096671 A CN 102096671A CN 2009102137949 A CN2009102137949 A CN 2009102137949A CN 200910213794 A CN200910213794 A CN 200910213794A CN 102096671 A CN102096671 A CN 102096671A
- Authority
- CN
- China
- Prior art keywords
- database
- boss
- comparison
- script
- edition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种BOSS数据库升级脚本的生成方法,包括:比较新版和旧版BOSS数据库的表结构;比较新版和旧版BOSS数据库的非表对象;比较新版和旧版BOSS数据库的数据;根据各所述比较的结果,生成升级脚本。本发明还相应公开了一种BOSS数据库升级脚本的生成设备。采用本发明揭示的技术方案,能自动生成BOSS数据库升级脚本,具有促进工作效率、使升级自动化等有益效果。
Description
技术领域
涉及通讯领域,尤其涉及一种BOSS数据库升级脚本的生成方法和设备。
背景技术
BOSS(业务操作支撑系统,即Business&Operation Support System)是一种IT信息化支撑系统,面对客户是统一的;面对电信运营商,它融合了BSS(Business Support System,即业务支撑系统)与OSS(Operation Support System,即运营支撑系统),是一个综合的业务运营和管理平台。BOSS每次版本更新都或多或少有一定的数据库变化,因此每次都必须为测试组或现场提供数据库升级脚本。
数据库升级的目的就是保证数据库完全一致,目前的做法是:使用两个版本的label取数据库脚本进行比较,取其中的差异,形成升级脚本,然后进行相关测试。这种方法有显然易见的缺点,就是工作重复、繁琐。
如何解决数据库升级自动化程度不高的问题,正是现有技术函待改进的。
发明内容
针对上述现有技术存在的问题,本发明旨在提供一种能自动生成BOSS数据库升级脚本的技术。
为了实现上述目的,本发明提供了一种BOSS数据库升级脚本的生成方法,包括:
比较新版和旧版BOSS数据库的表结构;
比较新版和旧版BOSS数据库的非表对象;
比较新版和旧版BOSS数据库的数据;
根据各所述比较的结果,生成升级脚本。
相应地,本发明还提供了一种BOSS数据库升级脚本的生成设备,包括:
表结构比较模块,用于比较新版和旧版BOSS数据库的表结构;
非表对象比较模块,用于比较新版和旧版BOSS数据库的非表对象;
数据比较模块,用于比较新版和旧版BOSS数据库的数据;
与所述表结构比较模块、非表对象比较模块、数据比较模块连接的脚本生成模块,用于根据各所述比较的结果,生成升级脚本。
通过上述本发明采用的技术方案可以看出,在本发明中,通过比较新版和旧版BOSS数据库之间的种种差异,从而自动生成升级脚本,以方便系统技术的升级,其具有促进工作效率、使升级自动化等有益效果。
附图说明
图1所示为BOSS数据库的配置文件控制流程示意图;
图2所示为本发明一种BOSS数据库升级脚本的生成方法的一种实施例流程示意图;
图3所示为本发明一种BOSS数据库升级脚本的生成设备的一种实施例结构示意图;
图4所示为图2中,比较新版和旧版BOSS数据库的表结构的一种实施例流程示意图;
图5所示为图2中,比较新版和旧版BOSS数据库的非表对象的一种实施例流程示意图;
图6所示为OSS数据库表层次关系示意图;
图7所示为图2中,比较新版和旧版BOSS数据库的数据的一种实施例流程示意图。
具体实施方式
下面结合附图及优选实施例对本发明的特征及技术内容进行进一步说明。附图仅用于解释本发明而非限制。
为了更清楚描述本发明,下面先说明数据库的安装技术。
公司内部网络的互联互通,是协同开发的基础;ClearCase的成功运用,使软件的版本控制得到良好控制;基于以上两个条件,我们可以随时安装指定版本的数据库,目前的通常做法是:
1、建立数据库用户、赋权;
2、设定特定版本信息的ClearCase视图(View);
3、运行数据库安装脚本;
4、输入安装参数;
5、检查输出log文件。
对以上安装步骤分析后发现,除了安装过程中需要人工输入参数外,其他几步都是不变的。以上步骤可以合成到一个Shell文件中,在Unix下一个命令可以完成所有工作。由此可见,可以让程序根据配置文件,生成特定的Shell文件,再调用Unix命令运行该脚本,可以实现数据库的自动安装。
需要说明的是,数据库的自动安装,需要从配置文件读取足够的信息,生成安装Shell文件,再由应用程序调用Unix接口运行。
由于BOSS4.0数据库由OSS和TS两个数据库用户组成,需要连续运行两个安装脚本,所以需要两个独立的配置文件来控制。
本发明一种实施例中,一共有6个配置文件,如下面表1所示:
表1
文件名 | 说明 |
genupscript.cfg | 主配置,调用其他5个配置文件 |
old_oss_install_para.cfg | 安装旧版OSS数据库的参数配置 |
old_ts_install_para.cfg | 安装旧版TS数据库的参数配置 |
new_oss_install_para.cfg | 安装新版OSS数据库的参数配置 |
new_ts_install_para.cfg | 安装新版TS数据库的参数配置 |
compara_db_para.cfg | 需要进行比较的两个数据库的用户名、密码等参数(选择安装DB时,不用配) |
其中,genupscript.cfg是主要的配置文件,包含是否安装数据库,安装什么版本的数据库,安装数据库的视图名称、数据库管理员用户名、密码等信息。
如果需要安装数据库,继续读取old_oss_install_para.cfg,old_ts_install_para.cfg(安装BOSS4.0数据库时用到),new_oss_install_para.cfg,new_ts_install_para.cfg(安装BOSS4.0数据库时用到)等配置文件。
如果不需要安装数据库,只需从compara_db_para.cfg读取新旧两个数据库连接信息即可。
读取配置文件后,为后续生成安装数据库的shell文件提供数据基础,配置文件控制流程如图1所示。
还需要说明的是,安装数据库的shell脚本一共有两个,一个是调用sqlplus的脚本,一个是在sqlplus中运行的数据库脚本:
调用sqlplus的脚本(install_db.sh)如下面表2所示:
表2
cleartool setview hillman_label1sqlplus system/manager@s73 @old_db_install.sqlcleartool setview hillman_label2sqlplus system/manager@s73 @new_db_install.sql |
sqlplus中运行的脚本(old_db_install.sql,不包括安装TS部分)如下面表3所示:
表3
--Install OSSCREATE USER″BOSS4.0_OSS_20040813121230_OLD″IDENTIFIED BY″OSS″DEFAULT TABLESPACE WACOSTEMPORARY TABLESPACE WACOSQUOTA UNLIMITED ON WACOS;GRANT CONNECT TO″BOSS4.0_OSS_20040813121230_OLD″;GRANT DBATO″BOSS4.0_OSS_20040813121230_OLD″;@/vob/dbscript/general/mswitch_oss_install.sql/opt/wacos/oss_tools/genupgradescript/bin/temp//vob/dbscript1BOSS4.0_OSS_20040813121230_OLDOSSS73BOSS4.0_TS_20040813121230_OLDOSSS731k1k1k1k1k1k1k1k1k1k1k1k1k1k1k1kshenzhen11111111111quit |
脚本中数据库用户名可以是在配置文件中自定义,也可以是应用程序自动生成,如果是自动生成,为了避免重复,命名规则可以为:
1、旧数据库:BOSS+DB_VERSION+OSS_YYYYMMDDHH24MISS_OLD
BOSS+DB_VERSION+TS_YYYYMMDDHH24MISS_OLD
2、新数据库:BOSS+DB_VERSION+OSS_YYYYMMDDHH24MISS_NEW
BOSS+DB_VERSION+TS_YYYYMMDDHH24MISS_NEW
另外,密码可以缺省为OSS。
安装完数据库,便可以开始生成自动脚本了。
如图2所示,为本发明一种BOSS数据库升级脚本的生成方法的一种实施例流程示意图。该方法可以包括:
S1、比较新版和旧版BOSS数据库的表结构;
具体地S1可以包括:比较表的增减;比较分区改变;比较列的增减、类型改变、约束;比较索引。
S3、比较新版和旧版BOSS数据库的非表对象;
具体地S3可以包括:从所述旧版BOSS数据库中获取所述非表对象;查询所述新版BOSS数据库中是否存在所述非表对象;相应地,所述根据所述比较的结果,生成升级脚本包括:当所述新版BOSS数据库中不存在所述非表对象时,生成删除脚本。
S5、比较新版和旧版BOSS数据库的数据;
具体地S5可以包括:获得所有表名称;获得表的关联关系;使用递归方法,找到叶子表;根据叶子表的主键进行数据比较。
S7、根据各所述比较的结果,生成升级脚本。
相应地,如图3所示,为本发明一种BOSS数据库升级脚本的生成设备的一种实施例结构示意图。该设备可以包括:
表结构比较模块1,用于比较新版和旧版BOSS数据库的表结构;
具体地,表结构比较模块1可以包括:表增减比较模块,用于比较表的增减;分获比较模块,用于比较分区改变;列比较模块,用于比较列的增减、类型改变、约束;索引比较模块,用于比较索引。
非表对象比较模块3,用于比较新版和旧版BOSS数据库的非表对象;
具体地,非表对象比较模块3可以包括:获取模块,用于从所述旧版BOSS数据库中获取所述非表对象;查询模块,用于查询所述新版BOSS数据库中是否存在所述非表对象;相应地,所述脚本生成包括:删除脚本生成模块,用于当所述查询模块查询结果为所述新版BOSS数据库中不存在所述非表对象时,生成删除脚本。
数据比较模块5,用于比较新版和旧版BOSS数据库的数据;
具体地,数据比较模块5可以包括:表名称获取模块,用于获得所有表名称;表关联关系获取模块,用于获得表的关联关系;搜索模块,用于使用递归方法,找到叶子表;主键比较模块,用于根据叶子表的主键进行数据比较。
所述设备还包括:
与所述表结构比较模块1、非表对象比较模块3、数据比较模块5连接的脚本生成模块7,用于根据各所述比较的结果,生成升级脚本。
对Oracle熟悉的人都知道,数据库本身有内容丰富的数据字典,记录着数据库中所有对象的详细信息,包括表、列、约束、索引、存储过程、视图等等,这些详细信息是自动生成升级脚本的基础。
数据库升级的目的,就是在旧版数据库上运行升级脚本,使其逻辑结构、数据组成等与新版数据库一致,比较新旧版数据库的数据字典,获得对象的变化情况,可以生成增、删、改等标准SQL脚本。
以下表4是常用的数据字典视图:
表4
视图 | 说明 |
USER_TABLES | 记录所有表的相关信息 |
DBA_TAB_PARTITIONS | 记录分区表的相关信息 |
USER_TAB_COLUMNS | 记录表所有列的相关信息 |
USER_INDEXES | 记录所有索引相关信息 |
USER_IND_COLUMNS | 记录索引列的相关信息 |
USER_OBJECTS | 记录所有数据库对象,包括表、存储过程、视图等 |
… |
除了修改数据库逻辑结构外,升级脚本还有一个很重要的作用,就是为旧版数据库添加新版应用所需要的初始化数据。
由于进行比较的两个数据库都是使用安装脚本安装的,数据库内部除了初始化数据外,没有其他人工的数据,这是进行数据比较的基础,可以根据表中关键字段(主键)进行数据的比较分析,得出标准的SQL脚本。
数据库的比较一共分三大类,一类是表结构比较,一类是非表对象比较,最后一类是数据比较。
对于表结构比较,要说明的是,表对象在两个版本之间的变动包括以下情况(新版本相对旧版本而言):
1、增加表;
2、减少表;
3、表结构相同,表分区改变;
4、表字段类型、约束改变;
5、表字段增加;
6、表字段减少;
7、索引增加;
8、索引减少;
9、索引改变;
解决方法前面已经描述过,具体地说可以是:
从USER_TABLES比较表的增减;从DBA_TAB_PARTITIONS比较分区改变;从USER_TAB_COLUMNS比较列的增减、类型改变、约束;从USER_INDEXES,USER_IND_COLUMNS比较索引。
具体的比较流程可以参见图4。
对于非表对象比较,要说明的是,非表对象包括:存储过程、函数、包、包体、触发器、视图等,该类对象会在升级完成后,使用新的脚本重新编译,因此不需要比较其内容的改变,升级脚本需要删除新版本数据库中不再使用的对象,防止其影响正常的业务操作,因此需要比较以下情况(新版本相对旧版本而言):减少的对象。
解决的方法前面已经描述过,具体地说可以是:从USER_OBJECTS比较对象的增减。
具体的比较流程可以参见图5。
对于数据比较,OSS数据库是关系数据库,各个表之间的数据都有主外键关联,因此进行初始化数据比较时,需要按照各表之间的层次关系,由叶子到根的顺序进行比较。
OSS数据库表层次关系如图6所示。
解决的方法前面已经描述过,具体地说可以是:从USER_TABLES获得所有表名称;从USER_CONSTRAINTS获得表的关联关系;使用递归方法,找到叶子表;根据叶子表的主键(唯一字段)进行数据比较,生成升级脚本。
具体的比较流程可以参见图7。
以上所揭露的仅为本发明实施例中的较佳实施例,不能以此来限定权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (8)
1.一种BOSS数据库升级脚本的生成方法,其特征在于,包括:
比较新版和旧版BOSS数据库的表结构;
比较新版和旧版BOSS数据库的非表对象;
比较新版和旧版BOSS数据库的数据;
根据各所述比较的结果,生成升级脚本。
2.如权利要求1所述的BOSS数据库升级脚本的生成方法,其特征在于,所述比较新版和旧版BOSS数据库的表结构包括:
比较表的增减;
比较分区改变;
比较列的增减、类型改变、约束;
比较索引。
3.如权利要求1所述的BOSS数据库升级脚本的生成方法,其特征在于,所述比较新版和旧版BOSS数据库的非表对象包括:
从所述旧版BOSS数据库中获取所述非表对象;
查询所述新版BOSS数据库中是否存在所述非表对象;
相应地,所述根据所述比较的结果,生成升级脚本包括:
当所述新版BOSS数据库中不存在所述非表对象时,生成删除脚本。
4.如权利要求1所述的BOSS数据库升级脚本的生成方法,其特征在于,所述比较新版和旧版BOSS数据库的数据包括:
获得所有表名称;
获得表的关联关系;
使用递归方法,找到叶子表;
根据叶子表的主键进行数据比较。
5.一种BOSS数据库升级脚本的生成设备,其特征在于,包括:
表结构比较模块,用于比较新版和旧版BOSS数据库的表结构;
非表对象比较模块,用于比较新版和旧版BOSS数据库的非表对象;
数据比较模块,用于比较新版和旧版BOSS数据库的数据;
与所述表结构比较模块、非表对象比较模块、数据比较模块连接的脚本生成模块,用于根据各所述比较的结果,生成升级脚本。
6.如权利要求5所述的BOSS数据库升级脚本的生成设备,其特征在于,所述表结构比较模块包括:
表增减比较模块,用于比较表的增减;
分获比较模块,用于比较分区改变;
列比较模块,用于比较列的增减、类型改变、约束;
索引比较模块,用于比较索引。
7.如权利要求5所述的BOSS数据库升级脚本的生成设备,其特征在于,所述非表对象比较模块包括:
获取模块,用于从所述旧版BOSS数据库中获取所述非表对象;
查询模块,用于查询所述新版BOSS数据库中是否存在所述非表对象;
相应地,所述脚本生成包括:
删除脚本生成模块,用于当所述查询模块查询结果为所述新版BOSS数据库中不存在所述非表对象时,生成删除脚本。
8.如权利要求5所述的BOSS数据库升级脚本的生成设备,其特征在于,所述数据比较模块包括:
表名称获取模块,用于获得所有表名称;
表关联关系获取模块,用于获得表的关联关系;
搜索模块,用于使用递归方法,找到叶子表;
主键比较模块,用于根据叶子表的主键进行数据比较。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102137949A CN102096671A (zh) | 2009-12-14 | 2009-12-14 | 一种boss数据库升级脚本的生成方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102137949A CN102096671A (zh) | 2009-12-14 | 2009-12-14 | 一种boss数据库升级脚本的生成方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102096671A true CN102096671A (zh) | 2011-06-15 |
Family
ID=44129767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102137949A Pending CN102096671A (zh) | 2009-12-14 | 2009-12-14 | 一种boss数据库升级脚本的生成方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102096671A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890720A (zh) * | 2012-10-16 | 2013-01-23 | 南京通达海信息技术有限公司 | 数据库检查维护方法 |
CN104881455A (zh) * | 2015-05-20 | 2015-09-02 | 深圳市酷开网络科技有限公司 | 一种基于mysql的结构差异处理方法及系统 |
CN105373631A (zh) * | 2015-12-18 | 2016-03-02 | 河南思维自动化设备股份有限公司 | 基于SQLSever的数据库结构自动升级方法 |
CN106250485A (zh) * | 2016-07-29 | 2016-12-21 | 北京北信源软件股份有限公司 | 数据库升级方法、装置及系统 |
WO2017036211A1 (zh) * | 2015-09-01 | 2017-03-09 | 中兴通讯股份有限公司 | 数据库的结构比较方法和装置 |
CN106599300A (zh) * | 2016-12-28 | 2017-04-26 | 中国建设银行股份有限公司 | 一种分布式系统数据库结构对比方法和装置 |
CN111078273A (zh) * | 2019-12-09 | 2020-04-28 | 京东数字科技控股有限公司 | 一种信息获取方法及装置、存储介质 |
CN111381860A (zh) * | 2020-04-02 | 2020-07-07 | 众能联合数字技术有限公司 | 数据库sql脚本快速维护框架及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070192290A1 (en) * | 2006-02-01 | 2007-08-16 | Zaytsev Andrey A | Difference-based database upgrade |
CN101183361A (zh) * | 2006-11-13 | 2008-05-21 | 中兴通讯股份有限公司 | 一种关系数据库应用自动升级的方法 |
-
2009
- 2009-12-14 CN CN2009102137949A patent/CN102096671A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070192290A1 (en) * | 2006-02-01 | 2007-08-16 | Zaytsev Andrey A | Difference-based database upgrade |
CN101183361A (zh) * | 2006-11-13 | 2008-05-21 | 中兴通讯股份有限公司 | 一种关系数据库应用自动升级的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890720A (zh) * | 2012-10-16 | 2013-01-23 | 南京通达海信息技术有限公司 | 数据库检查维护方法 |
CN104881455A (zh) * | 2015-05-20 | 2015-09-02 | 深圳市酷开网络科技有限公司 | 一种基于mysql的结构差异处理方法及系统 |
CN104881455B (zh) * | 2015-05-20 | 2019-01-29 | 深圳市酷开网络科技有限公司 | 一种基于mysql的结构差异处理方法及系统 |
WO2017036211A1 (zh) * | 2015-09-01 | 2017-03-09 | 中兴通讯股份有限公司 | 数据库的结构比较方法和装置 |
CN105373631A (zh) * | 2015-12-18 | 2016-03-02 | 河南思维自动化设备股份有限公司 | 基于SQLSever的数据库结构自动升级方法 |
CN106250485A (zh) * | 2016-07-29 | 2016-12-21 | 北京北信源软件股份有限公司 | 数据库升级方法、装置及系统 |
CN106599300A (zh) * | 2016-12-28 | 2017-04-26 | 中国建设银行股份有限公司 | 一种分布式系统数据库结构对比方法和装置 |
CN106599300B (zh) * | 2016-12-28 | 2020-06-30 | 中国建设银行股份有限公司 | 一种分布式系统数据库结构对比方法和装置 |
CN111078273A (zh) * | 2019-12-09 | 2020-04-28 | 京东数字科技控股有限公司 | 一种信息获取方法及装置、存储介质 |
CN111078273B (zh) * | 2019-12-09 | 2022-08-12 | 京东科技控股股份有限公司 | 一种信息获取方法及装置、存储介质 |
CN111381860A (zh) * | 2020-04-02 | 2020-07-07 | 众能联合数字技术有限公司 | 数据库sql脚本快速维护框架及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102096671A (zh) | 一种boss数据库升级脚本的生成方法和设备 | |
US11468103B2 (en) | Relational modeler and renderer for non-relational data | |
US10621176B2 (en) | Automatic reconfiguration of relocated pluggable databases | |
CN110799960B (zh) | 数据库租户迁移的系统和方法 | |
CN107247808B (zh) | 一种分布式NewSQL数据库系统及图片数据查询方法 | |
CN106202452B (zh) | 大数据平台的统一数据资源管理系统与方法 | |
US7096231B2 (en) | Export engine which builds relational database directly from object model | |
US20150310129A1 (en) | Method of managing database, management computer and storage medium | |
CN105447122A (zh) | 一种基于多表关联可自主创建档案系统的实现方法 | |
US20140201192A1 (en) | Automatic data index establishment method | |
CN106649771A (zh) | 数据库的数据模型更新方法和系统 | |
CN109299172B (zh) | 一种基于Spring Boot在不同环境的数据源接入方法和装置 | |
CN110737506A (zh) | 一种虚拟机镜像版本管理的方法 | |
CN102096669A (zh) | 一种数据备份方法和数据备份装置 | |
US20020091705A1 (en) | Object integrated management system | |
JP2020525938A (ja) | データベース内でテナントを作成及び削除するシステム及び方法 | |
CN102999600A (zh) | 一种嵌入式数据库自动生成方法和系统 | |
CN104166705A (zh) | 数据库的访问方法及装置 | |
CN112232672A (zh) | 一种工业机理模型的管理系统及方法 | |
CN114443015A (zh) | 一种基于数据库元数据的增删改查服务接口生成方法 | |
CN116737113B (zh) | 面向海量科学数据的元数据目录管理系统及方法 | |
CN112835887A (zh) | 数据库管理方法、装置、计算设备和存储介质 | |
CN105426459A (zh) | 基于NoSQL数据库的分布式物联网数据的单记录索引检索方式 | |
CN116450609B (zh) | 基于统一语法在异构数据源上建模的方法及设备 | |
Ru | Design of Archives Management System Based on Data Mining Technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C53 | Correction of patent of invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Yuan Jun Inventor before: He Jinhui |
|
COR | Change of bibliographic data |
Free format text: CORRECT: INVENTOR; FROM: HE JINHUI TO: YUAN JUN |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110615 |