数据管理DMS提供的结构设计功能,可以实现对目标库表进行符合研发规范的表结构设计。您可按需自定义不同业务线的研发流程,保障多套环境(例如开发环境、测试环境、生产环境)之间结构的一致性。本文介绍逻辑表结构设计的方法。
背景信息
分库分表后需要保障一个分表的DDL变更在所有分片中同时生效,同时尽可能减少复杂操作。DMS提供的逻辑表结构设计基于逻辑库、逻辑表的聚合,可以实现将分库分表当做单个表进行透明操作,符合用户诉求。
前提条件
支持的数据库类型:
MySQL:RDS MySQL、PolarDB MySQL版、MyBase MySQL、其他来源MySQL。
OceanBase。
实例的管控模式为安全协同。更多信息,请参见查看管控模式。
已有一个开发环境类型的逻辑库作为设计阶段的基准库、一个生产环境类型的逻辑库作为发布阶段的目标库。配置逻辑库和设置实例环境类型的操作,请参见逻辑库和更改实例环境类型。
说明MySQL默认的安全规则(mysql default)规定结构设计的研发流程中设计阶段的库环境为开发库(dev),发布阶段的库环境为生产环境(product)。您可根据业务需求自行调整研发流程,具体操作,请参见结构设计。
您需要有基准库和目标库的变更权限。
注意事项
基准库与目标库的类型需要保持一致。例如基准库为MySQL,则目标库的类型也需要为MySQL。
操作步骤
- 登录数据管理DMS 5.0。
在顶部菜单栏中,选择 。
说明若您使用的是极简模式的控制台,请单击控制台左上角的图标,选择
。单击页面右上角的结构设计。
配置结构设计工单的基本信息,并单击提交。部分参数说明如下:
配置
说明
变更基准库
选择安全协同模式的逻辑库。逻辑库的环境类型需要符合该数据库安全规则的研发流程规范,关于研发流程,请参见结构设计。
变更相关人
搜索并选择变更相关人,变更相关人可查看工单,参与开发、评审并推动工作。
说明非相关人员则不能查看工单(管理员、DBA除外)。
新建逻辑表。
有两种新建逻辑表的方式:
通过可视化方式:
单击新建逻辑表。
在新建逻辑表页面,分别单击基本信息、列信息、索引信息,设置表的基本信息、列信息和索引信息。
单击分表拓扑,输入逻辑表的表达式。关于逻辑表表达式,请参见逻辑表表达式。
说明修改逻辑表表达式会删除原表,创建新表,风险比较大,无法回滚,请谨慎操作。
单击计算表拓扑分布,预览新建表名和表的分布地址是否符合预期。若不符合则可以调整表达式后重试。
单击保存。
通过SQL建表语句:
单击导入SQL语句。
输入建表
Create Table
或修改表Alter Table
的SQL语句,并单击确定。例如,创建两张表
orders_logic_[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窗口中,查看修改、新增的表结构是否符合预期。
默认的安全规则规定结构变更均需要提交审批工单,您也可以在安全规则中进行自定义配置,例如设置开发节点的变更为免审批、设置生产节点的变更审批人等。
单击进入下一节点,在弹出的对话框中,再次单击进入下一节点。
将修改、新增的表结构执行到生产库中。
单击执行变更到目标库。
在执行变更到目标库面板中,选择目标库,单击确定。
说明您还可以单击增加多套库,将脚本代码批量执行到多套生产库。
待审批完成后,系统会自动将修改、新增的表结构同步到目标生产库中。您还可以在生产库的SQL窗口中,查看修改、新增的表结构是否符合预期。
单击进入下一节点,在弹出的对话框中,再次单击进入下一节点。
整个流程结束,工单关闭后,您可以单击各节点查看变更与发布记录。
后续操作
创建逻辑表后,需要维护路由算法。具体操作,请参见路由算法配置。