[发明专利]变更数据表结构的方法在审
申请号: | 201410344171.6 | 申请日: | 2014-07-18 |
公开(公告)号: | CN104112016A | 公开(公告)日: | 2014-10-22 |
发明(设计)人: | 肖磊 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 刘光明;陆锦华 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 变更 数据表 结构 方法 | ||
技术领域
本发明涉及一种变更数据表结构的方法。
背景技术
随着计算机网络应用的普及,数据库的容量也在不断增大,变更数据表结构的工作也变得越来越耗时。变更数据表结构的惯常做法一般有2种:
1、直接在数据表上操作,变更表结构定义,可能存在的直接影响,如下面的1、2两个原因。
2、创建新结构表,在维护窗口导入数据,再修改表名;可能存在的影响只是数据导入时间受原表大小制约。
维护窗口是业务的暂停时间段,为了尽可能小的影响系统运行,维护窗口越短越好。面对数据量日益增长的数据表,尤其是已经上千万条数据,容量超过几十GB甚至上百GB时,对大容量表的结构变更工作(专指扩充现有固定长度的字段长度)就变得十分困难,原因有以下几点:
1、停机时间增长。因为对数据表中固定长度的字段进行长度扩充时(包括但不限于int类型变更为bigint、char(10)变更为char(20)等),为保证关系数据库的ACID原则,会对数据表添加架构更新锁(Schema-M),以阻止在结构变更时有新数据写入;而对于大容量的表而言,结构变更的执行时间(以下简称执行时间)将变得更长,以至于超出预期的维护窗口时间,直接影响业务访问;
2、执行及回滚时间风险增加。随着数据量的增加,大容量表的结构变更时间将优于数据量的增长而快速增加,一旦超出维护窗口时间,是继续等待还是终止变更进入回滚状态,将令维护人员很难抉择,而且回滚时间可能超出已经执行时间的几倍或者几十倍。这使得操作的不确定性风险大大增加;此外,由于生产环境的复杂程度,很难在测试环境完全模拟生产环境提前进行测试,使得测试结果的适用性、可靠性降低,这也增加了对执行时间不可控的风险。
因此对于变更数据表结构来说,需要一种执行时间较短且可控的方案。
发明内容
有鉴于此,本发明提供一种变更数据表结构的方法,有助于使变更数据表结构的执行时间较短且可控。
为实现上述目的,根据本发明的一个方面,提供了一种变更数据表结构的方法。
本发明的这种变更数据表结构的方法,用于在包含根节点以及多级子节点的计算机网络中变更各节点中的数据表的结构,所述根节点中的数据表接收数据并向各子节点发布,该方法包括:对应于一个或多个处于运行状态原结构数据表,所述计算机网络中的各个节点保存一个或多个新结构数据表;将选定的节点作为新发布节点,其他节点为新订阅节点,新发布表和新订阅表分别为新发布节点和新订阅节点中的所述新结构数据表,将新发布节点中的所述原结构数据表中的数据添加到对应的新结构数据表中,并将该数据发布到新订阅节点中的新结构数据表中;在各个节点中的新结构数据表与原结构数据表达到数据同步的情况下,停止所述根节点中的原结构数据表的数据写入,然后将各个节点中的新结构数据表作为运行状态的数据表。
可选地,所述选定的节点是所述根节点或所述子节点。
可选地,所述选定的节点是向所述计算机网络添加的新节点,该新节点为所述根节点的订阅节点。
可选地,所述将新发布节点中的所述原结构数据表中的数据添加到对应的新结构数据表中的步骤包括:将新发布节点中的所述原结构数据表中的指定范围的数据添加到对应的新结构数据表中,然后将该原结构数据表与该新结构数据表之间的差异数据添加到该新结构数据表中。
可选地,将各个节点中的新结构数据表作为运行状态的数据表的步骤包括:将各个节点中的新结构数据表的表名修改为运行状态的数据表的表名。
根据本发明的另一方面,提供了另一种变更数据表结构的方法。
本发明的这种变更数据表结构的方法,用于变更单节点中的数据表的结构,该方法包括:对应于一个或多个处于运行状态原结构数据表,所述单节点保存一个或多个新结构数据表;设置新节点,并将该新节点和所述单节点分别作为订阅节点和发布节点;将所述新节点作为新发布节点,所述单节点作为新订阅节点,新发布表和新订阅表分别为新发布节点和新订阅节点中的所述新结构数据表,将新发布节点中的所述原结构数据表中的数据添加到对应的新结构数据表中,并将该数据发布到新订阅节点中的新结构数据表中;在各个节点中的新结构数据表与原结构数据表达到数据同步的情况下,停止所述根节点中的原结构数据表的数据写入,然后将各个节点中的新结构数据表作为运行状态的数据表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410344171.6/2.html,转载请声明来源钻瓜专利网。