
Q: DMS如何开启无锁结构变更优先功能?
在使用数据管理DMS的DDL无锁变更功能前,您需要先开启目标实例的DMS无锁结构变更优先功能,详细操作步骤和说明如下:
背景信息
MySQL原生的OnlineDDL在进行结构变更时仍有锁表风险:
①.在MySQL5.5以及之前的版本中,MySQL的DDL仅提供Table-Copy和In-Place(MySQL5.5开始提供)两种执行算法。i. Table-Copy:通过拷贝临时表完成变更,变更期间表被锁定不可写入;ii. In-Place:该算法执行期间可以对数据库进行读写,但仅支持索引数据。
②.MySQL5.6及后续版本提供了Innodb-OnlineDDL能力,覆盖了大范围的DDL类型(添加列、删除列、列名修改、添加索引、修改索引等),但仍然有些常见的DDL类型无法覆盖(修改列的类型、修改列的长度、修改字符集等)。
为了解决上述问题,数据管理DMS提供了DDL无锁变更功能,较好地规避因数据库变更导致锁表以至于阻塞业务的现象,以及数据库原生Online DDL带来的主备延迟现象。
注意事项
①.开启该功能时您的用户角色必须为DBA或管理员;②.在开启DMS无锁表结构变更优先时,直接使用DMS自研的DDL无锁变更执行,以保障不锁表;③.在开启MySQL原生OnlineDDL优先时,优先使用MySQL原生的OnlineDDL执行,如果源生会锁表的话会转用DMS自研的DDL无锁变更执行,以保障不锁表;④.在关闭不锁表结构变更时,原生语句下发给MySQL执行,不进行任何处理。


文章转载自阿里云数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




