数据管理DMS提供的结构设计功能,可以实现对目标库表进行符合研发规范的表结构设计。您可按需自定义不同业务线的研发流程,保障多套环境(例如开发环境、测试环境、生产环境)之间结构的一致性。本文介绍逻辑表结构设计的方法。
前提条件
- 支持的数据库类型:
- MySQL:RDS MySQL、PolarDB MySQL版、MyBase MySQL、其他来源MySQL
- OceanBase
- 实例的管控模式为安全协同。更多信息,请参见查看管控模式。
背景信息
分库分表后需要保障一个分表的DDL变更在所有分片中同时生效,同时尽可能减少复杂操作。DMS提供的逻辑表结构设计基于逻辑库
、逻辑表
的聚合,可以实现将分库分表当做单个表进行透明操作,符合用户诉求。操作步骤
- 登录数据管理DMS 5.0。
- 在顶部菜单栏中,选择 。
- 单击页面右上角的结构设计。
- 配置结构设计工单的基本信息,并单击创建工单。
配置 说明 项目名称 填写项目名称便于后期管理。 业务背景 描述项目的业务背景信息,例如变更目的、预期目标等,减少沟通成本。 变更基准库 选择安全协同模式的逻辑库。逻辑库的环境类型需要符合该数据库安全规则的研发流程规范,关于研发流程,请参见结构设计。 安全规则 自动选择,无需配置。 关联迭代 单击选择/切换迭代,在目标迭代名称的操作列,单击关联,关联迭代。 变更相关人 搜索并选择变更相关人,变更相关人可查看工单,参与开发、评审并推动工作。 说明 非相关人员则不能查看工单(管理员、DBA除外)。 - 新建逻辑表。有两种新建逻辑表的方式:
- 通过可视化方式:
- 单击新建逻辑表。
- 在新建逻辑表页面,分别单击基本信息、列信息、索引信息,设置表的基本信息、列信息和索引信息。
- 单击分表拓扑,输入逻辑表的表达式。关于逻辑表表达式,请参见逻辑表表达式。说明 修改逻辑表表达式会删除原表,创建新表,风险比较大,无法回滚,请谨慎操作。
- 单击计算表拓扑分布,预览新建表名和表的分布地址是否符合预期。若不符合则可以调整表达式后重试。
- 单击保存。
- 通过SQL建表语句:
- 单击导入建表语句。
- 输入建表
Create Table
或修改表Alter Table
的SQL语句,并单击确定。例如,创建两张表
orders_logic2_[05]
orders_logic_[06]
,SQL建表语句如下:CREATE TABLE `orders_logic_[05-06]` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key', `gmt_create` datetime NOT NULL COMMENT 'create time', `gmt_modified` datetime NOT NULL COMMENT 'modify time', PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET=utf8 COMMENT='创建逻辑表';
- 在新建逻辑表:orders_logic_[05-06]页签,确认表结构信息,确认无误后,单击保存。说明 已有表的变更不能调整分表表达式。
- 通过可视化方式:
- 在预检测结果对话框中,查看预检查结果。
- 预检查通过:单击确认无误,提交保存。
- 预检查结果中只有警告:单击忽略警告, 继续保存,或单击关闭,按规范修改表结构后,重新单击保存。
- 预检查结果中有错误:查看错误原因,单击关闭,按规范修改表结构后,重新单击保存。
说明- 系统根据默认安全规则中的研发规范对建表语句进行校验,提示本次操作中存在的研发规范类错误和警告。
- 当前DMS的研发规范支持新建表、修改表字段、修改表索引等多方面近40条规范,您可以在安全规则中进行自定义配置。
预检查通过后,系统将自动跳转至结构设计项目首页页签,您可以在项目编辑的表页签中,查看修改、新增的表,编辑、删除目标表等。 - 将修改、新增的表执行到基准库中。
- 单击执行变更到基准库。
- 在执行变更到基准库面板,选择执行策略、灰度方式和灰度行动,单击确定。
待审批完成后,系统会自动将修改、新增的表结构执行到基准库中,在变更执行历史页签中查看执行进度。说明- 执行记录会以每个分库一条记录进行分组执行。
- 您可以在基准库的SQL窗口中,查看修改、新增的表结构是否符合预期。
- 默认的安全规则规定结构变更均需要提交审批工单,您也可以在安全规则中进行自定义配置,例如设置开发节点的变更为免审批、设置生产节点的变更审批人等。
- 单击进入下一节点,在弹出的对话框中,再次单击进入下一节点。
- 将修改、新增的表结构执行到生产库中。
后续操作
创建逻辑表后,需要维护路由算法。具体操作,请参见路由算法配置。