SQL Console新交互模式下变更表数据和结构(公测中)

新交互模式的SQL Console基于原SQL Console进行了升级,升级后的SQL Console支持在执行SQL前备份数据、定时执行SQL、预估SQL执行耗时和异步执行SQL等功能。

背景信息

DMS新交互模式的SQL Console,支持如下执行SQL的方式:

  • 直接执行:建议预估影响较小(影响行数和执行耗时等方面)的SQL选择该方式。该方式是在SQL Console同步执行,且在SQL执行完成前,不允许在当前Tab下执行其他SQL。

  • 后台异步执行:建议预估影响较大的SQL选择该方式。该方式会生成异步任务(通过提交数据变更工单执行,免审批),不会阻塞当前SQL Console执行SQL,也可避免因浏览器或网络原因导致任务执行中断的问题。

前提条件

实例的模式为自由操作或稳定变更。管控模式信息,请参见管控模式

注意事项

  • 自由操作实例有5次试用异步执行SQL的次数。目前系统给每个租户分配了5次试用次数,若试用次数用完,仍需要使用异步执行SQL,您可以购买稳定变更模式商品并变更实例的管控模式。具体操作,请参见购买DMS服务变更管控模式

  • 稳定变更实例在非超级SQL模式下仅支持异步执行SQL,不支持直接执行SQL。超级SQL模式的更多信息,请参见超级SQL模式

    说明

    超级SQL模式下,若开启无锁变更,则仅支持异步执行SQL。若不开启,则两种执行SQL的方式都支持。

  • 新交互模式的SQL窗口目前在公测阶段。如使用时遇到问题,请使用钉钉搜索钉钉群号21991247,加入钉钉群反馈。

  • 仅当变更大表(200万及以上数据行)数据或结构时,系统才会为您提供无锁变更选项。

使用限制

  • 结构变更不支持备份。

  • 新交互模式的SQL窗口暂不支持安全协同实例使用。

进入SQL Console

您可选择如下任一方法进入SQL Console。

通过菜单栏进入SQL Console

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择SQL窗口 > SQL窗口

    说明

    若您使用的是极简模式的控制台,请单击控制台左上角的2023-01-28_15-57-17.png图标,选择全部功能 > SQL窗口 > SQL窗口

  3. 请先选择数据库对话框中,搜索并选择数据库,单击确认

通过实例列表进入SQL Console

  1. 登录数据管理DMS 5.0
  2. 在页面左侧的数据库实例列表区域,找到目标数据库。

  3. 左键双击数据库名称,进入SQL Console。

准备工作

本文已提前创建好一张test_table表,并且插入相关数据。

创建表的SQL示例

-- 创建一个测试表test_table
CREATE TABLE
  test_table (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT NOT NULL,
    PRIMARY KEY (id)
  );


-- 向test_table表中插入三条数据
INSERT INTO
  test_table (name, age)
VALUES
  ('John', 25),
  ('Mary', 30),
  ('Bob', 35);

使用SQL语句变更表数据

  1. SQL Console窗口中,输入并选中SQL语句,单击执行

    SQL语句示例:UPDATE `test_table` SET `name` = 'Johnn' WHERE `name` = 'John';

    在执行SQL前,SQL任务会进入校验阶段,在该阶段系统会自动进行如下操作:

    1. 对SQL进行解析和拆分。

    2. 校验SQL语句的执行者是否具有相关权限。如果权限校验失败,则会阻断执行进程,导致执行失败。如果校验成功,则进行下一步骤。

    3. 根据研发规范校验SQL。

    4. 根据SQL审核优化建议对SQL进行检查,并生成建议。您可根据建议调整、优化SQL语句。

  2. 预览SQL语句、查看预估影响行数预估运行时长(单位:毫秒),便于提前全面评估变更SQL语句对业务的影响。

    如果SQL语句存在问题,您可根据如下步骤进行修改:

    1. 单击SQL区域的image.png图标,修改SQL语句。

    2. 修改完成后,单击image.png再次锁定。此时,系统将会重新对SQL进行校验。

  3. 在变更建议区域,您可选择是否需要开启无锁变更备份,以及是否需要定时执行该变更。

    • 无锁变更:开启后,只能通过后台异步的方式执行SQL,更新表数据时将不会出现锁表的情况,同时您也可以实时地查看变更的进度。更多无锁变更信息,请参见无锁数据变更

    • 定时执行:设置执行数据变更的时间。

    • 备份:在变更前对数据进行备份,便于出现问题时将数据回滚到变更前的状态。更多信息,请参见SQL备份与回滚

  4. 单击直接执行后台异步执行

  5. 查看执行结果。

    在执行结果区域,单击image.png,查看任务详情,包含执行的脚本、日志、获取备份和任务执行进度等。获取备份的操作,请参见SQL备份与回滚

    image.png

使用SQL语句变更表结构

  1. SQL Console窗口中,输入并选中SQL语句,单击执行

    SQL语句示例:ALTER TABLE `test_table`ADD score DECIMAL ;

    在执行SQL前,SQL任务会进入校验阶段,在该阶段系统会自动进行如下操作:

    1. 对SQL进行解析和拆分。

    2. 校验SQL语句的执行者是否具有相关权限。如果权限校验失败,则会阻断执行进程,导致执行失败。如果校验成功,则进行下一步骤。

    3. 根据研发规范校验SQL。

    4. 根据SQL审核优化建议对SQL进行审核,并生成建议。您可根据建议调整、优化SQL语句。

  2. 预览SQL语句、查看预估影响行数预估运行时长(单位:毫秒),便于提前全面评估变更SQL语句对业务的影响。

    如果SQL语句存在问题,您可根据如下步骤进行修改:

    1. 单击SQL区域的image.png图标,修改SQL语句。

    2. 修改完成后,单击image.png再次锁定。此时,系统将会重新对SQL进行校验。

  3. 在变更建议区域,您可选择是否需要开启无锁变更定时执行该变更

    • 无锁变更:开启后,只能通过后台异步的方式执行SQL,更新表结构时将不会出现锁表的情况,同时您也可以实时地查看变更的进度。更多无锁变更信息,请参见无锁结构变更

    • 定时执行:设置执行数据变更的时间。

  4. 单击直接执行后台异步执行

  5. 查看执行结果。

    在执行结果区域,单击image.png,查看任务详情,包含执行的脚本、日志和任务执行进度(包含预估进展、运行参数等)等。

    image.png