全部产品

逻辑表结构变更

更新时间:2020-09-30 14:35:42

需求背景

  • 分库分表后,需要保障一个分表的DDL变更在所有分片都同时生效、并且需要尽可能少的复杂操作。当做单个表来透明操作是最符合当下诉求的。
  • DMS企业版基于产品内的逻辑库逻辑表的聚合来实现了这一透明化操作的支持。

操作步骤

结构设计 工单的基本操作可参考原文档内的内容,本章节重点针对逻辑库、逻辑表的特殊点进行说明。

  1. 与普通的单库变更不一样的点,需要在选择数据库时选择逻辑库标识的记录。 逻辑库

  2. 新建工单后,可以直接新建逻辑表、也可以导入已有的建表语句进入UI编辑确认页面。 新建表

  3. 与普通单库单表操作不一样的点,需要在”分表拓扑”这边进行对应表达式的编辑。 当前case是4个分库组成的逻辑库,若每个库顺序递增一共128个表,则表达式为table\_name\_[0000-0127]拓扑

  4. 完成表达式书写后,点击”计算表拓扑分布”可以看到每个分表的分布是否符合预期。若不符合则可以调整表达式后重试,直至符合预期后进行保存。 计算拓扑

  5. 保存成功后可通过”预览SQL”进行确认。 预览

  6. 确认无误则可以执行变更到基准库、推进发布流程到其他目标库中(操作方式与单库变更类似),执行记录会以每个分库一条记录进行分组执行;已有表的变更不能调整分表表达式,其他字段与索引操作和单表完全一致执行