数据库中表结构的变更方法及装置制造方法及图纸

技术编号:20841931 阅读:24 留言:0更新日期:2019-04-13 08:40
本说明书实施例提供一种数据库中表结构的变更方法,此方法包括:首先,响应于针对业务表的结构变更指令,建立业务表到预先建立的备份表的第一同步连接,以将业务表中相对于备份表在上一次同步之后新产生的数据同步到备份表;以及,将业务表由可读写状态更改为只读状态;接着,响应于同步完成,将业务链路由业务表切换至备份表;然后,对业务表进行结构变更;接着,将结构变更后的业务表由只读状态更改为可读写状态;然后,建立备份表到结构变更后的业务表的第二同步连接,以将业务链路切换到备份表之后,备份表中新增的数据同步至业务表中;以及,将备份表由可读写状态更改为只读状态;再响应于此次同步完成,将业务链路由备份表切换至业务表。

【技术实现步骤摘要】
数据库中表结构的变更方法及装置
本说明书实施例涉及数据库
,具体地,涉及一种数据库中表结构的变更方法及装置。
技术介绍
数据库是建立在计算机存储设备上的仓库,用于按照数据结构来组织、存储和管理数据,且其中通常包括存储有各种数据的表格。在当下的大数据时代,数据库中的数据量通常很大,在某些情况下,需要对表的结构进行调整。例如,对于某些应用,其服务的用户很多,且提供的功能繁杂,与其对应的数据库存储的数据量通常很大,随着业务的发展,应用模型会发生变化,则需要调整数据库中的表结构来适配应用模型。然而,目前在调整数据库表结构的过程中,将对与数据库相关的在线业务进程造成较大的影响。因此,需要提供一种合理的方案,实现快速、安全地进行数据库表结构的变更,以减少数据库变更对生产业务的影响。
技术实现思路
本说明书描述了一种数据库中表结构的变更方法,首先,在数据库中针对需要变更结构的业务表建立备份表,并通过数据同步确保备份表和业务表的数据准实时同步,然后,禁写业务表并等待业务表完全同步至备份表,再将生产流量切换到备份表,接着在业务表上进行结构变更,由此实现业务无损的结构变更。根据第一方面,提供一种数据库中表结构的变更方法,所述方法包括:响应于针对业务表的结构变更指令,建立所述业务表到预先建立的备份表的第一同步连接,以将业务表中的第一数据同步到所述备份表,所述第一数据是业务表相对于所述备份表在上一次同步之后新产生的数据;将所述业务表由可读写状态更改为只读状态;响应于基于所述第一同步连接的同步完成,将业务链路由所述业务表切换至所述备份表;对所述业务表进行结构变更;将结构变更后的业务表由只读状态更改为可读写状态;建立所述备份表到结构变更后的业务表的第二同步连接,以将备份表中的第二数据同步至结构变更后的业务表中,所述第二数据是业务链路切换到所述备份表之后,备份表中新增的数据;将备份表由可读写状态更改为只读状态;响应于基于所述第二同步连接的同步完成,将业务链路由所述备份表切换至结构变更后的业务表。在一个实施例中,将所述业务表由可读写状态更改为只读状态包括:响应于所述第一同步连接的建立,将所述业务表由可读写状态更改为只读状态。在一个实施例中,将所述业务表由可读写状态更改为只读状态包括:当第一数据中未同步至备份表中的数据的数据量减少至预定阈值时,将所述业务表由可读写状态更改为只读状态。在一个实施例中,所述结构变更指令包括对应的变更项,所述变更项包括以下中的至少一项:表名、字段名、字段类型、字段属性、主键和索引。进一步地,在一个具体的实施例中,所述变更项中不包括表名,所述将业务链路由业务表切换至备份表,包括:将所述业务表的名称由第一名称改为第三名称,并将备份表的名称由第二名称改为第一名称;所述将业务链路由所述备份表切换至结构变更后的业务表,包括:将备份表的名称由第一名称改为第二名称,将结构变更后的业务表的名称由第三名称改为第一名称。在另一个具体的实施例中,所述变更项中包括表名,所述将业务链路由业务表切换至备份表,包括:获取对应的变更后的第四名称;将业务链路中的第一名称改为第四名称,所述第一名称为业务表的原有名称;将备份表的名称由第二名称改为第四名称;所述将业务链路由所述备份表切换至结构变更后的业务表,包括:将备份表的名称由第四名称改为第二名称,将结构变更后的业务表的名称由第一名称改为第四名称。根据第二方面,提供另一种数据库中表结构的变更方法,所述方法包括:响应于针对业务表的结构变更指令,对预先针对所述业务表建立的备份表进行结构变更;建立所述业务表到结构变更后的备份表的同步连接,以将所述业务表中的第一数据同步到结构变更后的备份表,所述第一数据是业务表相对于所述备份表在上一次同步之后新产生的数据;将所述业务表由可读写状态更改为只读状态;响应于所述同步完成,将业务链路由业务表切换至结构变更后的备份表。在一个实施例中,将所述业务表由可读写状态更改为只读状态包括:响应于所述同步连接的建立,将所述业务表由可读写状态更改为只读状态。在一个实施例中,将所述业务表由可读写状态更改为只读状态包括:当第一数据中未同步至备份表中的数据的数据量减少至预定阈值时,将所述业务表由可读写状态更改为只读状态。在一个实施例中,所述结构变更指令包括对应的变更项,所述变更项包括以下中的至少一项:表名、字段名、字段类型、字段属性、主键和索引。进一步地,在一个具体的实施例中,所述变更项中不包括表名,所述将业务链路由业务表切换至结构变更后的备份表,包括:将所述业务表的名称由第一名称改为第三名称,并将结构变更后的备份表的名称由第二名称改为第一名称。在另一个具体的实施例中,所述变更项中包括表名,所述将业务链路由业务表切换至结构变更后的备份表,包括:获取对应的变更后的第四名称;将业务链路中的第一名称改为第四名称,所述第一名称为业务表的原有名称;将备份表的名称由第二名称改为第四名称。根据第三方面,提供一种数据库中表结构的变更装置,所述装置包括:第一同步单元,配置为响应于针对业务表的结构变更指令,建立所述业务表到预先建立的备份表的第一同步连接,以将业务表中的第一数据同步到所述备份表,所述第一数据是业务表相对于所述备份表在上一次同步之后新产生的数据;第一更改单元,配置为将所述业务表由可读写状态更改为只读状态;第一切换单元,配置为响应于基于所述第一同步连接的同步完成,将业务链路由所述业务表切换至所述备份表;结构变更单元,配置为对所述业务表进行结构变更;第二更改单元,配置为将结构变更后的业务表由只读状态更改为可读写状态;第二同步单元,配置为建立所述备份表到结构变更后的业务表的第二同步连接,以将备份表中的第二数据同步至结构变更后的业务表中,所述第二数据是业务链路切换到所述备份表之后,备份表中新增的数据;第三更改单元,配置为将备份表由可读写状态更改为只读状态;第二切换单元,配置为响应于基于所述第二同步连接的同步完成,将业务链路由所述备份表切换至结构变更后的业务表。根据第四方面,提供另一种数据库中表结构的变更装置,所述装置包括:结构变更单元,配置为响应于针对业务表的结构变更指令,对预先针对所述业务表建立的备份表进行结构变更;同步单元,配置为建立所述业务表到结构变更后的备份表的同步连接,以将所述业务表中的第一数据同步到结构变更后的备份表,所述第一数据是业务表相对于所述备份表在上一次同步之后新产生的数据;更改单元,配置为将所述业务表由可读写状态更改为只读状态;切换单元,配置为响应于所述同步完成,将业务链路由业务表切换至结构变更后的备份表。根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。在本说明书实施例披露的数据库中表结构的变更方法中,通过在数据库中针对需要变更结构的业务表建立备份表,并定期将业务表中的数据同步至备份表中。当接收到结构变更指令时,建立业务表到备份表的数据同步,等待同步接近完成时禁写业务表,并在同步完全完成以后将业务链路切换至备份表,然后本文档来自技高网...

【技术保护点】
1.一种数据库中表结构的变更方法,所述方法包括:响应于针对业务表的结构变更指令,建立所述业务表到预先建立的备份表的第一同步连接,以将业务表中的第一数据同步到所述备份表,所述第一数据是业务表相对于所述备份表在上一次同步之后新产生的数据;将所述业务表由可读写状态更改为只读状态;响应于基于所述第一同步连接的同步完成,将业务链路由所述业务表切换至所述备份表;对所述业务表进行结构变更;将结构变更后的业务表由只读状态更改为可读写状态;建立所述备份表到结构变更后的业务表的第二同步连接,以将备份表中的第二数据同步至结构变更后的业务表中,所述第二数据是业务链路切换到所述备份表之后,备份表中新增的数据;将备份表由可读写状态更改为只读状态;响应于基于所述第二同步连接的同步完成,将业务链路由所述备份表切换至结构变更后的业务表。

【技术特征摘要】
1.一种数据库中表结构的变更方法,所述方法包括:响应于针对业务表的结构变更指令,建立所述业务表到预先建立的备份表的第一同步连接,以将业务表中的第一数据同步到所述备份表,所述第一数据是业务表相对于所述备份表在上一次同步之后新产生的数据;将所述业务表由可读写状态更改为只读状态;响应于基于所述第一同步连接的同步完成,将业务链路由所述业务表切换至所述备份表;对所述业务表进行结构变更;将结构变更后的业务表由只读状态更改为可读写状态;建立所述备份表到结构变更后的业务表的第二同步连接,以将备份表中的第二数据同步至结构变更后的业务表中,所述第二数据是业务链路切换到所述备份表之后,备份表中新增的数据;将备份表由可读写状态更改为只读状态;响应于基于所述第二同步连接的同步完成,将业务链路由所述备份表切换至结构变更后的业务表。2.根据权利要求1所述的方法,其中,将所述业务表由可读写状态更改为只读状态包括:响应于所述第一同步连接的建立,将所述业务表由可读写状态更改为只读状态。3.根据权利要求1所述的方法,其中,将所述业务表由可读写状态更改为只读状态包括:当第一数据中未同步至备份表中的数据的数据量减少至预定阈值时,将所述业务表由可读写状态更改为只读状态。4.根据权利要求1所述的方法,其中,所述结构变更指令包括对应的变更项,所述变更项包括以下中的至少一项:表名、字段名、字段类型、字段属性、主键和索引。5.根据权利要求4所述的方法,其中,所述变更项中不包括表名,所述将业务链路由业务表切换至备份表,包括:将所述业务表的名称由第一名称改为第三名称,并将备份表的名称由第二名称改为第一名称;所述将业务链路由所述备份表切换至结构变更后的业务表,包括:将备份表的名称由第一名称改为第二名称,将结构变更后的业务表的名称由第三名称改为第一名称。6.根据权利要求4所述的方法,其中,所述变更项中包括表名,所述将业务链路由业务表切换至备份表,包括:获取对应的变更后的第四名称;将业务链路中的第一名称改为第四名称,所述第一名称为业务表的原有名称;将备份表的名称由第二名称改为第四名称;所述将业务链路由所述备份表切换至结构变更后的业务表,包括:将备份表的名称由第四名称改为第二名称,将结构变更后的业务表的名称由第一名称改为第四名称。7.一种数据库中表结构的变更方法,所述方法包括:响应于针对业务表的结构变更指令,对预先针对所述业务表建立的备份表进行结构变更;建立所述业务表到结构变更后的备份表的同步连接,以将所述业务表中的第一数据同步到结构变更后的备份表,所述第一数据是业务表相对于所述备份表在上一次同步之后新产生的数据;将所述业务表由可读写状态更改为只读状态;响应于所述同步完成,将业务链路由业务表切换至结构变更后的备份表。8.根据权利要求7所述的方法,其中,将所述业务表由可读写状态更改为只读状态包括:响应于所述同步连接的建立,将所述业务表由可读写状态更改为...

【专利技术属性】
技术研发人员:雷佳
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1