一种在通信设备中实现关系数据库自动升级的方法,先对数据库中的数据表信息进行详细描述;再在备机上启动新的软件版本,并向主机发送请求传送数据的消息;主机收到请求后将数据表中的属性内容加上表名称和属性名称发送到备机上;备机接收数据表内容后,将数据表属性放入新的版本数据表对应的属性中,对新版本中没有的数据表属性不予处理。在数据库升级完成后,主机将数据库升级期发生的数据更改的数据表传送给备机。本发明专利技术不用修改代码,就可实现数据库的自动升级,节省了开发和维护数据库升级工具的人力物力,提高了通信设备开发和维护的效率,降低了开发和维护工作的出错率。
【技术实现步骤摘要】
本专利技术涉及在拥有主备主控板的大型通信设备上进行软件版本升级的技术,具体涉及新旧版本数据库兼容问题。
技术介绍
在通信设备的运行当中,由于提供新业务的需要或是修改通信设备软件版本的错误时,通常要对通信设备的软件版本进行升级,即用新的软件版本替换正在运行的旧的软件版本。但是由于通信设备在通信网中的重要性,以及通信网运行质量的特殊要求,大型通信设备在进行软件版本升级时,一般要求对正在运行的业务影响最小,甚至不能中断正在运行的业务。这就要求通信设备在更换软件版本后,其运行状态基本上和更换软件版本前保持一致。在通信设备中的运行中,由于数据库起着重要作用,数据库中存放了通信设备的大量命令配置、运行状态、性能统计、告警通知等数据信息,所以在通信设备进行软件版本的升级工作中,数据库的升级是一个重要的步骤。它是使原有正在运行中的软件版本中各个数据表的记录中的内容填入新的软件版本中各个数据表的相应记录中,使更换新软件版本的通信设备的运行状态和原有的运行状态保持一致,减少对通信网运营质量的不良影响。但是在数据库中,同一张数据表的结构在不同的版本中有可能不同,这就给数据库的升级造成了困难。所以使正在运行的设备软件版本中数据库中的各种配置、统计、告警、记费等数据内容快速正确、简单方便的同步到升级后的新软件版本的数据库中,对通信网络的业务正常运行和维护工作起着重要作用。如果数据库无法升级,就会给通信设备的开发和维护带来很多不必要的麻烦。或是软件版本升级后通过操作维护台将原运行版本的所有配置命令重新输入一遍,使升级后的设备的运行状态和升级前保持一致,或是限制业务和数据库的修改,这样使各个版本的数据库中数据表的结构前后保持一致,使设备软件版本可以顺利升级。由下面的分析得知,为什么同一张数据表的结构在不同的版本中不同会给数据库升级造成困难。在数据库的设计中,使用较多概念模型是E-R概念模型,在E-R模型中,世界被划分成一个个实体(entity),由属性(attribute)来描述实体性质,并通过联系相互关联。实体是物理上或者概念上独立存在的事务或对象,实体由属性来刻画其性质。除了实体和属性外,构成E-R模型的第三个要素是联系(relationship)。实体之间通过联系相互作用和关联。在E-R概念模型基础上,在数据库实现中,最流行的逻辑数据模型之一就是关系模型。关系模型的广为流行和强大能力要归功于其简洁的结构,它是一种以二维表的形式表示实体数据和实体之间关系等信息的数据模型,其中,由于二维表在数学公式中一般称为关系,因此把这种模型称为关系模型,表的列称为属性(attribute)。每一行称为一个元组(tuple),表中行或列出现的顺序并不重要。因此关系是一个无序的元组集合。表名和列名构成关系模式(relation schema),行(或元组)的集合称为关系实例(relational instance)。在由E-R模型可以无缝地,直观地映射到关系模型,每个实体映射成一个单独的关系。实体的属性映射成关系的属性,实体间的联系也映射成关系。在内存数据库中,这种模型对数据库的各种功能的提供有重要的作用。比如以下是关系的实例,其名称为X。 其中a,b,c,d为该关系包含的属性。关系的名称和关系的属性集称为关系的模式X(A,B,C,D)。在关系模式中,除了第一行是标题栏外,关系中的其它行X/1…称为元组。当进行数据库的更改时,在逻辑上相当于对关系的属性集进行了更改。比如添加了一个属性E,则形成了新的关系模式,减少一个属性也是同样原理。X(A,B,C,D)Xnew(A,B,C,D,E) 如果要将旧的数据升级为新的数据从原理上讲应满足下列公式。X∩Xnew≠数据库升级就是将关系X中的A,B,C,D属性中的内容放到新结构的关系Xnew中,而E属性可以是空和缺省值。在实际的工作中通信设备数据库的升级主要有两种方法,两种方法各自有一定的优缺点和适用范围。一种方法是利用操作维护台将保存下来的原版本的所有配置命令通过脚本在新软件版本的操作维护台中进行配置命令的批处理,以使新版本的数据库中的数据表内容信息和老版本中数据库中的数据表内容信息的相同,达到设备软件版本升级前和升级后运行状况相同的目的。脚本方法比较适用于业务功能比较简单,配置等数据内容比较少的通信设备,这种方法比较简单可靠,但是只能升级配置部分的数据,同时由于新旧版本的配置命令参数等内容不一定相同,所以版本中配置命令的解释部分也要有相应的升级工具需要维护。另一种方法是直接用数据库升级工具对软件版本中数据库的各种数据表的内容进行升级,将旧版本中旧数据表格的数据内容在转换到新版本中新数据表格式的数据库中。数据库升级工具方法比较适用于业务实现较复杂和配置等数据比较多的大型通信设备的数据升级,这种升级方法升级后的数据比较完整,不但包括了配置数据,还包括了设备运行时数据库中其它类别的所有数据。但是这种方法实现较为复杂,数据升级工具的开发维护工作要求比较高。由于在物理实现上,二维关系数据库的数据表的内容都是按一维方式存放于内存和硬盘中,一条记录紧接着另一条记录存为一个内存块或文件。举例将上面的例子中数据表X升级为数据表Xnew。如果不用数据升级工具,完整的将表X的内容从内存或文件中取出放入表Xnew中,就会在记录Xnew/1中出现偏差,a/1的内容就会存放于a/1的位置,a/2的内容就会存放于e/1的位置,后面的记录也会出现同样的偏差情况,这是由于在内存块和文件中,数据表记录是一条接一条的存放的。在现有的数据升级工具中,将先记录X/1的内容放入Xnew/1,然后操作Xnew表的指针就会指向Xnew/2,并将X/2的内容放入依次操作实现数据升级。但是由于版本的不同,同一张表X在不同的版本中其结构都有可能不同,其不同的属性出现的位置也不一定相同,比如说属性E的位置不一定出现在Xnew的最后。这样数据升级工具就要对同一张表在不同的版本中有不同的操作。所以数据库升级工具中包含了所有要升级的软件版本之间数据表属性的有无,位置相互差异等信息。这样要考虑任意两个版本间的升级操作,数据升级工具就会变得比较庞大,同时由于版本中数据表结构有任何修改,相应数据升级工具都要进行修改和维护,使之一直处于变动中,不能稳定下来,出错率较高。具体的升级原理可参看图1,数据库升级时,主机向备机传送数据,数据升级工具判断新旧版本,即主备机上的版本是否相同,若相同,备机将接收的数据放到新版本中,若不同,则将依次判断是否是某一版本。这两种方法都无法实现数据库的自动升级,都需要在进行升级工作前不同程度的修改维护升级工具以适应数据表新的变动情况。总结下来,使用数据升级工具实现数据库升级有以下缺点1、不能从表的本身判断是否两个版本间数据表进行了修改,只能根据版本的版本号来进行判断版本中有那些数据表有了修改,这种判断难免会出现误差。例如实际的两个版本之间出现的数据表的结构修改而在数据库升级工具中忘记将相应的数据表的升级程序加上,则在数据库升级时就会出现错误。2、在进行版本升级的时候在理论上会出现多到多的多种版本转换情况,这样,依靠新旧两个版本的版本号来判断那些表进行过修改,就会使数据升级工具的中判断程序出现很大的增长,数本文档来自技高网...
【技术保护点】
一种在通信设备中实现关系数据库自动升级的方法,包括以下步骤: 1.1对数据库中的数据表信息进行详细描述,包括对每个数据表的名称、对数据表中的每个属性的名称和物理位置进行描述; 1.2在备机上启动新的软件版本,并向主机发送请求传送数据的消息; 1.3主机将数据表中的属性内容加上表名称和属性名称发送到备机上; 1.4备机接收数据表内容后,将数据表属性放入新的版本数据表对应的属性中,对新版本中没有的数据表属性不予处理。
【技术特征摘要】
【专利技术属性】
技术研发人员:朱新华,李金旺,周建国,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。