文档

开启无锁结构变更

更新时间:

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

前提条件

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

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

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

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在控制台首页的数据库实例区域,找到并右键单击目标实例,单击编辑实例

    说明

    您也可以在顶部菜单栏中,选择数据资产 > 实例管理

  3. 高级信息区域,展开无锁结构变更的下拉列表,选择开启(DMS无锁变更执行)开启(原生无锁优先,失败转DMS执行)

    选项

    执行说明

    备注

    DMS无锁变更执行

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

    说明

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

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

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

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

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

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

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

    关闭

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

  4. 单击保存

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