CN115687343B 数据库系统及数据库列变更方法 (阿里云计算有限公司)_第1页
CN115687343B 数据库系统及数据库列变更方法 (阿里云计算有限公司)_第2页
CN115687343B 数据库系统及数据库列变更方法 (阿里云计算有限公司)_第3页
CN115687343B 数据库系统及数据库列变更方法 (阿里云计算有限公司)_第4页
CN115687343B 数据库系统及数据库列变更方法 (阿里云计算有限公司)_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本公开涉及一种数据库系统及数据库列变值。在物理数据表和物理GSI表中分别添加第二列。在逻辑数据表和逻辑GSI表各自的结构定义辑数据表和逻辑GSI表中的第二列分别与物理数据表和物理GSI表中的第二列相关联,并且逻辑表和逻辑GSI表各自的结构定义中进行配置,以在数据库的用户访问逻辑中用第二列替换第一逻辑数据表和逻辑GSI表各自的结构定义中删除且在列变更过程中不会导致用户写入或读取访2在物理数据表和物理GSI表中分别添加第二列,物理数据表和至少一项属性的值为数据表中待变更的第一列的相应在逻辑数据表和逻辑GSI表各自的结构定义中分别添加第二列,并使第二列对用户隐藏,逻辑数据表和逻辑GSI表中的第二列分别与物理数据表和物理GSI表中的第二列相关在逻辑数据表和逻辑GSI表各自的结构定义中进行配置,将逻辑数的第一列的列名称和第二列的列名称分别修改为映射到物理数据表和物理GSI表中第二列在逻辑数据表和逻辑GSI表各自的结构定义中删除第每次对逻辑数据表和逻辑GSI表各自的结构定义进行变更之后,将变更后的逻辑数据物理数据表和物理GSI表中的第二列的列名称与逻辑数据表和逻辑GSI表中的第二列逻辑数据表和逻辑GSI表中的第二列的列名称被配置为映射到物理数据表和物理GSI所述将变更后的逻辑数据表和逻辑GSI表的结构定义同步到所有计算节点的操作是原在逻辑数据表和逻辑GSI表各自的结构定义中进行配置以在数据库的用户访问逻辑中用第二列替换第一列,并将变更后的逻辑数据表的结构定义和逻辑GSI表的结构定义同步6.根据权利要求5所述的方法,其中,使物理数据表和数据表和物理GSI表的第一列相同的数据在第一列对用户显示而第二列对用户隐藏的情况下,在逻辑数据表和逻辑GSI表各自的结构定义中进行配置,使得在物理数据表和物理GSI表各自的第二列上复制对第一列的将物理数据表和物理GSI表各自的第一列中已有的数据内容复制到物理数据表和物理在第一列对用户隐藏而第二列对用户显示的情况下,在逻辑数据表和逻辑GSI表各自3的结构定义中进行配置,使得停止在物理数据表和物理GSI表各自的第二列上复制对第一7.根据权利要求6所述的方法,其中,在物理数在逻辑数据表和逻辑GSI表各自的结构定义中进行配置,停止在第一列待变更的属性包括列名称和列类型,或者仅包括列名GSI表各自的结构定义中进行配置以在数据库的用户访问逻辑中用第二列替换第一列的步第一列待变更的属性包括列类型,在逻辑数据表和逻辑GSI表各自的结构定义中进行配置以在数据库的用户访问逻辑中用第二列替换第一在逻辑数据表和逻辑GSI表各自的结构定义中交换第一列和根据权利要求1至9中任何一项所述的方法来4[0003]一种基于分布式数据库分片(Sharding)思想实现的分布式数据库系统主要由一[0004]计算节点上存储逻辑表(也可以称为“逻辑库表”),逻辑表可以具有多个分区[0009]使用传统方法在分布式数据库上执行修改列类型的操作时,数据表和GSI两者各自的物理表中列的类型不能同时变更,这可能导致在某个时刻在主表和GSI上同时看到修5表和用于所述数据表的全局二级索引GSI,所述数据表具有计算节点上的逻辑数据表和数据表和逻辑GSI表中的第二列的所述至少一项属性的值为所述变更目标值;在逻辑数据表和逻辑GSI表各自的结构定义中进行配置,以在数据库的用户访问逻辑中用第二列替换第构定义中删除第一列。为映射到物理数据表和物理GSI表中的第二[0018]可选地,所述将变更后的逻辑数据表和逻辑GSI表的结构定义同步到所有计算节[0019]可选地,在逻辑数据表和逻辑GSI表各自的结构定义中进行配置以在数据库的用户访问逻辑中用第二列第一列,并将变更后的逻辑数据表的结构定义和逻辑GSI表的结构和物理GSI表的第二列具有与物理数据表和物理GSI表的第使得停止在物理数据表和物理GSI表各自的第二列上复制对第一列的修改,并在物理数据表和物理GSI表各自的第一列上复制对第据表和逻辑GSI表各自的结构定义中进行配置以在数据库的用户访问逻辑中用第二列替换6一列的列名称和第二列的列名称分别修改为映射到物理数据表和物理GSI表中第二列和第一列的列名称;以及在逻辑数据表和逻辑GSI表各自的结构定义中交换第一列和第二列的[0040]图8示出了根据本发明一实施例可用于实现上述数据库列变更方法的计算设备的78[0061]用户可以向计算节点发送作用在逻辑表上的逻辑SQL(结构化查询语句)指令,如写入指令或查询指令。然后,计算节点可以向数据节点发送作用在物理表上的物理SQL指[0068]图4是根据本公开的数据库列变更方法的示意性流程图。这里的数据库可以是分辑GSI表和物理GSI表中的第一列为逻辑数据表和物理数据表中的第一列提供全局二级索表和物理GSI表中的第二列的至少一项属性的值为数据表中待变更的第一列的相应属性的列。9设定为第一列的列名称变更目标值,而是可以设定[0080]在步骤S420,在逻辑数据表和逻辑GSI表各自的结构定义(schema)中分别添加第的第二列相关联,并且逻辑数据表和逻辑GSI表中的第二列的至少一项属性的值为上述属和物理GSI表中的第二列的列名称与步骤S420中设定的逻辑数据表和逻辑GSI表中的第二逻辑GSI表中的第二列的列名称配置为映射到物理数据表和物理GSI表中的第二列的列名列分别与物理数据表和物理GSI表中的第[0091]这里,第一列要变更的列属性可以包括列名称和/或列类型。对于不同的变更属从而交换物理表中第一列和第二列的列名称与逻辑表中第一列和第二列的列名称之间的理表的列之间的关联的情况下,可以在物理数据表和物理GSI表中交换第一列和第二列的别修改为映射到物理数据表和物理GSI表中第二列和第一列的列名称,从而交换物理表中第一列和第二列的列名称与逻辑表中第一列和第二列的列名称之间的关联关系。换言之,问控制的时候,或者说,从计算节点的逻辑层向数据节点的物理层发送物理SQL指令的时[0100]这样,逻辑数据表和逻辑GSI表中的第一列(具有原列名称)将变得与物理数据表和物理GSI表中的第二列(具有原列名称或交换后对应于逻辑表第一列的映射关系)相关有新列名称的第二列对用户隐藏。而物理数据表和物理GSI表中列名称交换或列名称映射关系交换后具有原列名称或交换后对应于逻辑表第一列的映射关系的第二列分别关联到对应于逻辑表第二列的映射关系的第一列则分别关联到逻辑数据表和逻辑GSI表中的第二值)的第二列。[0102]然后,在逻辑数据表和逻辑GSI表各自的结构定义中交换第一列和第二列的列名中的第二列与物理数据表和物理GSI表中的第二列具有相同的列名称(原列名称)或具有基物理GSI表中的第一列具有相同的列名称(新列名称)或具有基于列名称的映射关系,并因[0109]在每次对逻辑数据表和逻辑GSI表各自的结构定义进行变更之后,可以将变更后[0112]原子操作是指不可中断的一个或者一系列操作。同步操作可能包含一系列操逻辑GSI表的结构定义同步到所有计算节点之后,再执行上述步骤S440、S350的列删除操[0115]上文中已经参考图4描述了通过添加具有属性变更目标值的第二列,并用第二列步骤S420在逻辑表的结构定义中添加第二列之后,步骤S440在物理表中删除第一列之前,还可以进一步使物理数据表和物理GSI表的第二列具有与物理数据表和物理GSI表的第一[0120]图5中新增加的步骤S510至S540分别用于在不同的时机在第一列和第二列之间对[0121]如图5所示,在步骤S420之后,在第一列对用户显示而第二列对用户隐藏的情况数据表和物理GSI表各自的第二列上复制对第一列的修改。这样的修改复制操作可以称为物理GSI表各自的第一列中已有的数据内容复制到物理数据表和物理GSI表各自的第二列。在步骤S530可以在逻辑数据表和逻辑GSI表各自的结构定义中进行配置,使得停止在物理数据表和物理GSI表各自的第二列上复制对第一列的修改(即停止前述列多写操作),并在物理数据表和物理GSI表各自的第一列上复制对第二列的修改。这里的修改复制操作也可据表和逻辑GSI表各自的结构定义中进行了配置以在数据库的用户访问逻辑中用第二列替步到第一列。更列名称的情况下,在经过先后在物理表和逻辑表中交换第一列和第二列的列名称之后,[0132]在例如步骤S430配置的逻辑数据表和逻辑GSI表各自的结构定义已经同步到所有[0165]图7A示意性地示出了初始状态。如图7A所示,逻辑表和物理表中具有列名称为[0166]在下文的描述中涉及到两个列的列名称交换。从用户视角和/或数据库控制逻辑[0180]此时,图7E中从列A(第一列)到列A'(第二列)的列反写操作已自然转换为图7F中从列名称交换后的列A(第二列)到列A'(第一列)的MySQL原生支持的在线DDL的更改列类型操作,所以该方案涉及的物理DDL均不会阻塞用户问的正确性,直到所有的计算节点同步完成。下面对本公开的列变更方案中涉及的逻辑Schema操作(逻辑表的结构定义配置)本逻辑Schema也能读取到通过旧版本逻辑Schema写入的[0203]此时,新旧两个版本的逻辑Schema都已经不会访问该列,所以不同版本的逻辑[0204]图8示出了根据本发明一实施例可用于实现上述数据库列变更方法的计算设备的处理器820可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理储媒介不包含载波和通过无线或有线传输的瞬间电算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算[0213]附图中的流程图和框图显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论