全部產品
Search
文件中心

Data Management:無鎖結構變更

更新時間:Jun 30, 2024

DMS為解決結構變更時的鎖表問題而推出的無鎖結構變更功能,能較好地規避因資料庫變更導致鎖表以至於阻塞業務的現象、以及資料庫原生Online DDL帶來的主備延遲現象。

前提條件

  • 執行個體的管控模式為穩定變更或安全協同。更多資訊,請參見管控模式

  • 目標執行個體已開啟DMS無鎖表結構變更策略。具體操作,請參見開啟無鎖結構變更

    說明

    本樣本中,您需要提前對類比開發環境的RDS MySQL執行個體開啟DMS無鎖表結構變更策略。

操作步驟

本樣本通過無鎖結構變更功能將big_table表的long_text_a欄位類型從varchar(1024)改為text

  1. 普通使用者提交工單。

    1. 以普通使用者帳號,登入Data Management 5.0

    2. 在頂部功能表列中,選擇資料庫開發 > 資料變更 > 無鎖變更

      說明

      若您使用的是極簡模式的控制台,請單擊控制台左上方的2023-01-28_15-57-17.png表徵圖,選擇全部功能 > 資料庫開發 > 資料變更 > 無鎖變更

    3. 配置如下資訊,並單擊提交申請

      參數名

      說明

      資料庫(必填)

      選擇安全協同模式的poc_dev資料庫。

      原因類別(必填)

      選擇變更的原因,方便後續尋找。

      業務背景(必填)

      詳細描述變更原因或目標,減少溝通成本。

      執行方式(必填)

      選擇最後一個審批人執行

      影響行數(必填)

      預估本次更新會影響的資料行數,可在SQL Consolecount統計。

      變更SQL(必填)

      輸入如下ALTER語句。

      ALTER TABLE `big_table`
        MODIFY COLUMN `long_text_a` text NULL AFTER `name`;
      說明

      long_text_a欄位的類型從varchar(1024)改為text

      復原SQL(選填)

      可直接執行的SQL語句,變更SQL的對應逆向SQL。

      變更相關人(選填)

      設定的相關人員都可查看工單,並協同工作,非相關人員則不能查看工單(管理員、DBA除外)。

    4. 工單詳情頁中,確認工單詳情資訊。

      說明

      您可以在工單詳情頁中,查看工單的詳情資訊,同時系統也會對將要執行的SQL進行執行前的預檢查,包括SQL文法解析、安全規則中的SQL類型校正、工單提交人的許可權檢查、預計檢查掃描行數等。

    5. 確認資訊無誤且預檢查通過後,單擊提交審批,並在彈窗中單擊確認

      重要

      在提交審批前,您可以修改工單內容,一旦提交審批後,將不能修改相關資訊。

  2. 管理員審批工單。

    1. 以管理員帳號,登入Data Management 5.0

    2. 在DMS控制台首頁我的工單地區,單擊待處理工單

    3. 我的工單頁面,單擊目標工單號

    4. 工單詳情頁,確認工單變更資訊,單擊同意

    5. 在審批意見文字框中輸入具體意見,並單擊確定

  3. 普通使用者執行工單。

    1. 以普通使用者帳號,登入Data Management 5.0

    2. 在工單詳情頁面的執行地區,單擊執行變更,在彈窗中配置如下資訊,並單擊確定執行

      配置項

      說明

      是否立即執行

      選擇是否立即執行,支援:

      • 立即執行:提交即刻執行。

      • 定時執行:按需指定在業務特定時間執行。

      預設為立即執行

      是否事務控制

      選擇是否開啟事務控制開關:

      • 開啟:遇到失敗則全部復原(僅支援DML語句,不支援DDL語句)。

      • 關閉:逐條提交,遇到失敗則終止但不復原。

      預設為關閉。

      是否備份資料

      選擇是否開啟備份資料開關:

      • 開啟:針對本次變更中被UPDATE和DELETE語句影響的資料,系統將產生對應的INSERT指令碼,以對原資料進行備份。

      • 關閉:不對上述資料產生備份指令碼。

      預設為開啟。

      說明

      單擊確定執行後,系統將自動開始執行。

查看任務進展並驗證

  1. 以管理員帳號,單擊基本資料地區變更資料庫的名稱。在提示框中,單擊查詢

    頁面將自動跳轉至SQL Console頁面。

  2. 在SQL Console視窗中,輸入查詢的SQL語句後,單擊執行

    例如輸入查詢當前資料庫下表的SQL語句。

    SHOW TABLES;
    說明

    系統在進行無鎖結構變更時,產生了兩張暫存資料表。

  3. 在頂部功能表列中,選擇營運管理 > 任務管理

    說明

    若您使用的是極簡模式的控制台,請單擊控制台左上方的2023-01-28_15-57-17.png表徵圖,選擇全部功能 > 營運管理 > 任務管理

  4. 單擊目標任務號,進入任務執行詳情頁。

  5. 單擊目標任務操作列下的進度按鈕。

  6. 在無鎖結構變更頁,查看當前的整體拷貝進度。

  7. 變更完成後,對錶結構進行驗證。

    big_table的表結構已變更,暫存資料表已被刪除。