开启无锁结构变更

在使用数据管理DMS的无锁结构变更功能前,您需要先为目标实例开启无锁结构变更。本文介绍开启无锁结构变更的方法。

前提条件

  • 支持的数据库类型:RDS MySQLPolarDB MySQLMyBase MySQL、其他来源MySQL。

  • 实例的管控模式为稳定变更或安全协同。更多信息,请参见查看管控模式

  • 用户角色为DBA或管理员。查看用户角色,请参见查看我的系统角色

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在控制台首页的数据库实例列表,右键单击目标实例,选择开启无锁结构变更

    说明

    您也可以在顶部菜单栏中,选择数据资产 > 实例管理,在实例列表页签下,单击目标实例右侧的更多 > 编辑实例,通过编辑实例的高级信息来开启无锁结构变更。

    image

    变更方式说明:

    选项

    执行说明

    备注

    DMS无锁变更执行

    直接使用DMS自研的DDL无锁变更执行,以保障不锁表。

    说明

    如下情况无法通过DMS无锁变更执行,会自动降为原生无锁执行,若DMS检测到原生无锁执行会锁表或报错,则任务执行失败。

    • 目标表为空表。执行空表无风险,选择原生执行速度会更快。

    • SQL语句涉及增加唯一约束(UK)。由于DMS无锁结构变更的原理限制,不支持增加UK。

    执行时间相对MySQL原生OnlineDDL会慢一些,但不影响复制行为,不会产生延迟现象。

    原生无锁优先,失败转DMS执行

    优先尝试使用数据库原生OnlineDDL无锁执行,如果DMS检测到原生执行会锁表或失败,则自动转用DMS自研的DDL无锁变更引擎执行,以保障不锁表。

    执行时间相对比较快,但有可能导致实例的并行复制降为串行复制,从而可能产生主备延迟现象。

    关闭

    原生语句下发给MySQL执行,不进行任何处理。

  3. 修改无锁结构变更对话框中,单击确认

    实例开启无锁结构变更后,您可以通过无锁变更工单实现无锁结构变更

相关操作

实例开启无锁结构变更后,您在该实例中执行以下类型的工单,都会优先采用无锁结构变更的方式。