以阿里云DMS为例,无锁操作分为无锁数据变更和无锁结构变更,详细步骤和注意事项如下:
无锁数据变更操作步骤
- 登录DMS 5.0:访问阿里云DMS平台,输入账号密码登录。
- 进入无锁变更页面:在顶部菜单栏中,选择“数据库开发”>“数据变更”>“无锁变更”。若使用极简模式控制台,单击左上角图标,在导航栏中选择“全部功能”>“数据库开发”>“数据变更”>“无锁变更”。
- 配置无锁变更工单:选择目标数据库,选择工单执行方式,输入变更SQL,可选择输入SQL文本或上传附件。若有需要,可输入回滚SQL。还可设置变更相关人、上传工单附件。
- 提交申请与检查:提交申请后,可开启主备延迟检查并设置阈值,系统自动进行SQL预检查,若失败可根据原因修改SQL后重试,无误则单击“提交审批”。
- 审批与执行:安全协同实例按审批规则审批,稳定变更实例自动通过审批。审批通过后,在工单详情页“执行区域”单击“执行变更”,配置执行策略和指定结束时间后,单击“确定执行”。
无锁结构变更操作步骤
- 登录DMS 5.0:输入账号密码登录阿里云DMS平台。
- 进入实例管理页面:在控制台首页的数据库实例区域,找到并右键单击目标实例,单击“编辑实例”;也可在顶部菜单栏中,选择“数据资产”>“实例管理”。
- 开启无锁结构变更:在“高级信息”区域,展开无锁结构变更的下拉列表,选择“开启(DMS无锁变更执行)”或“开启(原生无锁优先,失败转DMS执行)”,单击“保存”。
注意事项
- 数据库类型与管控模式:无锁变更支持MySQL、PostgreSQL、MariaDB、OceanBase MySQL模式等,实例管控模式需为稳定变更或安全协同。
- 操作权限:用户需有目标数据库的变更权限。
- SQL操作限制:无锁数据变更仅支持单表、简单的SQL操作,如UPDATE、DELETE、INSERT_SELECT等,不支持复杂的SQL操作,如CREATE_INDEX和多表操作。
- 空间问题:回收大容量表的碎片空间时,要确保实例剩余存储空间至少为目标表大小的2-3倍。
- 执行风险:所有DDL变更均存在失败的可能性,无法保证100%成功。