当业务累积了大量数据时,需要对在线数据与历史数据进行分隔管理,或定期清除表中数据。DMS的无锁数据变更功能将结合表中的主键或非空唯一键,分批对表中的目标数据进行操作,在保证执行效率的同时,尽可能地减小了对数据库性能、空间的影响。
操作步骤
本示例通过无锁数据变更功能将big_table
表中的long_text_b
字段的数据批量改为ramdom long text
。
- 普通用户提交工单。
- 以普通用户账号登录DMS控制台。
- 在页面顶部,选择全部功能 > 数据方案 > 无锁数据变更。
- 配置如下信息,并单击提交申请。
参数名 说明 数据库(必填) 选择 poc_dev
库。原因类别(必填) 选择数据变更的原因,方便后续查找。 业务背景(必填) 详细描述变更原因或目标,减少沟通成本。 变更SQL(必填) 输入如下 UPDATE
语句。UPDATE `big_table` SET `long_text_b` = 'ramdom long text' WHERE id < 1000000;
说明 将big_table
表中的long_text_b
字段的数据批量改为ramdom long text
。回滚SQL(选填) 可直接执行的SQL语句,变更脚本对应的逆向脚本。 变更相关人(选填) 设置的相关人员都可查看工单,并协同工作,非相关人员则不能查看工单(管理员、DBA除外)。 - 在工单详情页中,单击分批执行配置按钮,设置以下参数,单击提交修改。
配置 说明 分批大小(行数) 填入每个分批的大小,默认为1000行。 每1万行sleep时间(秒) 填入每1万行sleep时间,默认为0.5秒。 是否开启主备延迟检查 选择是否开启主备延迟检查。 主备延迟阈值(秒) 填入主备延迟阈值,默认为10秒。 是否开启剪枝优化 选择是否为开启剪枝优化。 - 确认工单详情信息。
说明 您可以在工单详情页中,查看工单的详情信息,同时系统也会对将要执行的SQL进行执行前的预检查,包括SQL语法解析、安全规则中的SQL类型校验、工单提交人的权限检查、预计检查扫描行数等。
- 确认信息无误且预检查通过后,单击提交审批,并在弹窗中单击确认。说明 在提交审批前,您可以修改工单内容和定时配置,一旦提交审批后,将不能修改相关信息。
- 管理员审批并执行工单。
- 以管理员账号登录DMS控制台。
- 在DMS控制台首页我的工单区域,单击待处理工单。
- 在我的工单页面,单击目标工单号。
- 在工单详情页,确认工单变更信息,单击同意。
- 在审批意见文本框中输入具体意见,并单击确定。
- 单击执行变更,选择执行时间,并单击确定执行。
单击确定执行后,系统将自动开始执行。
说明- 默认为立即执行,您也可以自行选择开始的执行时间。
- 若您选择指定结束时间,系统在时间到达后将不再执行未完成的SQL,该功能主要为了防止在高峰期影响业务的运作。
- 在执行区域,单击详情,并在弹窗中单击执行进度,查看任务执行进展。
- 管理员验证任务。
- 以管理员账号登录DMS控制台。
- 在DMS对象列表中展开
poc_dev
实例,双击poc_dev
数据库,进入SQL Console页。 - 在SQL Console窗口中,输入如下查询语句,单击执行。
SELECT * FROM `big_table`;
说明long_text_b
字段的数据已被更新。
在文档使用中是否遇到以下问题
更多建议
匿名提交