操作手册
【试用教程】数据变更
dms
手动配置
26
教程简介
本教程将指导您在阿里云数据管理DMS(Data Management)中通过提交工单进行数据变更。
通过提交工单进行数据变更,系统在预检查阶段对SQL的正确性进行校验、在审批阶段检查待执行的SQL是否会影响数据库性能及是否允许提交工单者执行此SQL,有效控制了SQL变更的风险。
通过提交工单进行数据变更的方式如下:
普通数据变更:支持INSERT、UPDATE、DELETE、TRUNCATE等SQL语句。
无锁数据变更:具有普通数据变更的所有能力,其可以在不锁表的情况下对表进行数据变更,有效地减少数据变更对数据库性能、空间的影响。
我能学到什么
如何通过DMS提交工单进行数据变更。
准备环境及资源
5
开始教程前,请按以下步骤准备环境和资源:
将RDS MySQL实例录入至DMS中。具体操作,请参见统一管理数据库实例并进行库表列权限管控教程中的准备资源与环境及录入RDS MySQL实例的内容。
在RDS MySQL实例中创建目标数据库。本教程已提前创建了dmstest数据库。创建数据库的具体操作,请参见MySQL数据库管理。
提交工单进行数据变更
16
通过普通数据变更,在dmstest数据库下创建user_test1表。
登录数据管理DMS控制台。
单击控制台左上角的
图标,选择全部功能 > 数据库开发 > 数据变更 > 普通数据变更。
在工单申请页面配置如下信息:
配置项
说明
本教程取值
数据库
搜索并选择目标数据库。
dmstest@rm-bp1qbXXXX6U.mysql.rds.aliyuncs.com:3306【rm-bp1qbXXXX6U】
关联迭代
迭代提供了逐阶段推进研发流程的功能。详细信息,请参见管理迭代。
保持系统默认取值
原因类别
选择数据变更的原因,方便后续查找。
测试
业务背景
详细描述变更原因或目标,减少沟通成本。
教程测试
执行方式
选择工单的执行方式:
审批通过后,提交者执行
审批通过后,自动执行
最后一个审批人执行
审批通过后,提交者执行
影响行数
DMS预估本次变更会影响的数据行数。
3
变更SQL
选择输入文本或上传附件。
文本
SQL文本
输入具体的变更SQL。例如INSERT、UPDATE等。
CREATE TABLE `user_test1` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT comment '用户id', `user_name` varchar(255) DEFAULT NULL comment '用户名字', `english_name` varchar(255) DEFAULT NULL comment '用户英文名', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='表2' INSERT INTO `user_test1` (`id`,`user_name`,`english_name`) VALUES (1,'唐雪',' Caspar Jiracek'), (2,'傅强钧',' Willem Skatcher'), (3,'麻婕',' Maje Pennell');
回滚SQL
可直接执行的SQL语句,变更脚本对应的逆向脚本。本教程保持系统默认的文本选项。
保持系统默认取值
SQL文本
回滚SQL为变更SQL对应的逆向脚本。本教程不填入SQL文本。
保持系统默认取值
变更相关人
设置的相关人员都可查看工单,并协同工作,非相关人员则不能查看工单(管理员、DBA除外)。
db_test
工单附件
上传工单附件,补充当前工单信息。本教程不上传工单附件。
保持系统默认取值
单击提交申请。系统将自动进行SQL预检查。如果预检查失败,您可以根据失败原因,单击修改SQL,修改SQL后重试。
预检查通过后,单击提交审批,等待审批通过。
审批通过后,在执行区域单击执行变更,在任务设置对话框中设置任务执行参数,并单击确定执行,等待任务执行完成。
配置项
说明
本教程取值
执行策略
选择执行策略:
立即执行:单击确定执行后,立即执行工单任务。
定时执行:指定任务开始执行时间,单击确定执行后,在指定时间执行工单任务。
立即执行
开启整体事务
选择是否开启整体事务,默认关闭。
开启:执行失败则全部回滚(仅限DML,DDL不在范围内)。
关闭:逐条提交SQL任务,执行失败则终止任务,但不回滚。
关闭
开启备份
选择是否开启备份,默认开启。仅执行UPDATE和DELETE语句时,支持备份数据。MongoDB和Redis不支持备份数据。
开启:执行UPDATE、DELETE语句前,系统自动生成对应的备份脚本附件。
如果数据库类型为MySQL和MariaDB,生成REPLACE INT备份语句。
如果数据库类型为除MySQL、MariaDB外的其他引擎,生成INSERT备份语句。
关闭:不生成备份附件。
关闭
等待工单执行完成。若在详情页面的完成区域,出现任务执行完成,则表示该工单任务已执行完成。
通过无锁数据变更修改user_test1表中的user_name字段。教程示例中将唐雪变更为李雪。
登录数据管理DMS控制台。
单击控制台左上角的
图标,选择全部功能>数据库开发>数据变更>无锁变更。
在工单申请页面配置如下信息:
配置项
说明
本教程取值
数据库
搜索并选择目标数据库。
dmstest@rm-bp1qbXXXX6U.mysql.rds.aliyuncs.com:3306【rm-bp1qbXXXX6U】
关联迭代
迭代提供了逐阶段推进研发流程的功能。详细信息,请参见管理迭代。
保持系统默认取值
原因类别
选择数据变更的原因,方便后续查找。
测试
业务背景
详细描述变更原因或目标,减少沟通成本。
教程测试
执行方式
选择工单的执行方式:
审批通过后,提交者执行
审批通过后,自动执行
最后一个审批人执行
审批通过后,提交者执行
变更SQL
选择输入文本或上传附件。
文本
SQL文本
输入具体的DML(Data Manipulation Language)变更SQL。例如UPDATE、DELETE、INSERT_SELECT。
UPDATE `user_test1` SET `user_name` = '李雪' where user_name = '唐雪';
回滚SQL
可直接执行的SQL语句,变更脚本对应的逆向脚本。本教程保持系统默认的文本选项。
保持系统默认取值
SQL文本
回滚SQL为变更SQL对应的逆向脚本。本教程不填入SQL文本。
保持系统默认取值
变更相关人
设置的相关人员都可查看工单,并协同工作,非相关人员则不能查看工单(管理员、DBA除外)。
db_test
工单附件
上传工单附件,补充当前工单信息。本教程不上传工单附件。
保持系统默认取值
单击提交申请。系统将自动进行SQL预检查。如果预检查失败,您可以根据失败原因,单击修改SQL,修改SQL后重试。
预检查通过后,单击提交审批。
审批通过后,在执行区域单击执行变更,在任务设置对话框中设置任务执行参数,并单击确定执行,等待任务执行完成。
配置项
说明
本教程取值
执行策略
立即执行:系统默认,单击确认执行后立即执行工单任务。
定时执行:选择任务开始执行时间。单击确认执行后,在指定的时间执行该任务。
立即执行
指定结束时间
开启:选择任务结束时间。如果任务在指定结束时间之前没有执行完毕,则系统将不再继续执行未完成的SQL任务,防止高峰期执行任务,影响业务运作。
关闭:系统默认。
关闭
完成
1
查看已变更的数据
登录数据管理DMS控制台。
单击页面左侧的数据库实例,在展开的数据库实例面板中,找到dmstest数据库。
双击dmstest数据库,进入SQL Console页面。
双击user_test1表,单击执行。
普通数据变更执行结果如图所示:
无锁数据变更执行结果如图所示:
清理及后续
4
清理
本教程中使用的安全协同的管控模式只能免费试用3个月。试用到期后,您可以提交工单进行退订。若未退订,安全协同的管控模式将按照正常价格计费,计费标准,请参见计费项。
删除dmstest数据库
单击控制台左侧的数据库实例,在展开的数据库实例面板中,找到目标实例。
右键单击实例名称,在弹窗中选择数据库管理。
在数据库管理页面,找到dmstest数据库,单击操作列下的删除。
在提示框中,单击删除。
此时,dmstest数据库已被删除。
后续
若普通数据变更不符合预期,可以快速恢复源数据。具体操作,请参见普通数据变更。
总结
常用知识点
问题:通过提交工单进行无锁数据变更时,支持CREATE_INDEX和多表操作吗?(单选题)
正确答案是不支持。通过提交工单进行无锁数据变更仅支持单表、简单的SQL操作,例如UPDATE、DELETE等。