在使用数据管理DMS的无锁结构变更功能前,您需要先为目标实例开启无锁结构变更。本文介绍开启无锁结构变更的方法。
前提条件
操作步骤
登录数据管理DMS 5.0。
在控制台首页的数据库实例列表,右键单击目标实例,选择开启无锁结构变更。
说明您也可以在顶部菜单栏中,选择,在实例列表页签下,单击目标实例右侧的,通过编辑实例的高级信息来开启无锁结构变更。
变更方式说明:
选项
执行说明
备注
DMS无锁变更执行
直接使用DMS自研的DDL无锁变更执行,以保障不锁表。
说明如下情况无法通过DMS无锁变更执行,会自动降为原生无锁执行,若DMS检测到原生无锁执行会锁表或报错,则任务执行失败。
目标表为空表。执行空表无风险,选择原生执行速度会更快。
SQL语句涉及增加唯一约束(UK)。由于DMS无锁结构变更的原理限制,不支持增加UK。
执行时间相对MySQL原生OnlineDDL会慢一些,但不影响复制行为,产生延迟的概率较低。
原生无锁优先,失败转DMS执行
优先尝试使用数据库原生OnlineDDL无锁执行,如果DMS检测到原生执行会锁表或失败,则自动转用DMS自研的DDL无锁变更引擎执行,以保障不锁表。
执行时间相对比较快,但有可能导致实例的并行复制降为串行复制,从而可能产生主备延迟现象。
关闭
原生语句下发给MySQL执行,不进行任何处理。
无
在修改无锁结构变更对话框中,单击确认。
实例开启无锁结构变更后,您可以通过无锁变更工单实现无锁结构变更。
关闭无锁结构变更
如需关闭无锁结构变更,操作入口与开启一致:
在控制台首页的数据库实例列表,右键单击目标实例,选择无锁结构变更> 关闭。
说明您也可以在顶部菜单栏中,选择,在实例列表页签下,单击目标实例右侧的,然后在高级信息区域关闭无锁结构变更。
在修改无锁结构变更对话框中,选择关闭,然后单击确认。
关闭后的影响:
执行机制:关闭后,DMS 将直接使用原生 DDL 执行结构变更,是否锁表取决于数据库自身对 Online DDL 的支持情况。若数据库支持 Online DDL,仅短暂持有元数据锁;若不支持,则会长时间锁表。
操作安全性:关闭或重新开启该选项无需重启实例,不影响实例状态或数据。
影响范围:该设置仅作用于通过 DMS 发起的结构变更工单,不影响其他客户端直接执行的 DDL 语句。
相关操作
实例开启无锁结构变更后,您在该实例中执行以下类型的工单,都会优先采用无锁结构变更的方式。
常见问题
关闭再开启 DMS 无锁结构变更是否有影响?
不会有影响。关闭再开启无锁结构变更选项不会影响实例状态或数据,无需重启实例,无数据风险。关闭期间,DMS 将使用原生 DDL 执行结构变更;重新开启后,即可恢复 DMS 无锁变更能力。