DMS為解決結構變更時的鎖表問題而推出的無鎖結構變更功能,能較好地規避因資料庫變更導致鎖表以至於阻塞業務的現象、以及資料庫原生Online DDL帶來的主備延遲現象。
前提條件
操作步驟
本樣本通過無鎖結構變更功能將big_table
表的long_text_a
欄位類型從varchar(1024)
改為text
。
普通使用者提交工單。
以普通使用者帳號,登入Data Management 5.0。
在頂部功能表列中,選擇 。
說明若您使用的是極簡模式的控制台,請單擊控制台左上方的表徵圖,選擇全部功能 > 資料庫開發 > 資料變更 > 無鎖變更。
配置如下資訊,並單擊提交申請。
參數名
說明
資料庫(必填)
選擇安全協同模式的
poc_dev
資料庫。原因類別(必填)
選擇變更的原因,方便後續尋找。
業務背景(必填)
詳細描述變更原因或目標,減少溝通成本。
執行方式(必填)
選擇最後一個審批人執行。
影響行數(必填)
預估本次更新會影響的資料行數,可在SQL Console以
count
統計。變更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除外)。
在工單詳情頁中,確認工單詳情資訊。
說明您可以在工單詳情頁中,查看工單的詳情資訊,同時系統也會對將要執行的SQL進行執行前的預檢查,包括SQL文法解析、安全規則中的SQL類型校正、工單提交人的許可權檢查、預計檢查掃描行數等。
確認資訊無誤且預檢查通過後,單擊提交審批,並在彈窗中單擊確認。
重要在提交審批前,您可以修改工單內容,一旦提交審批後,將不能修改相關資訊。
管理員審批工單。
以管理員帳號,登入Data Management 5.0。
在DMS控制台首頁我的工單地區,單擊待處理工單。
在我的工單頁面,單擊目標工單號。
在工單詳情頁,確認工單變更資訊,單擊同意。
在審批意見文字框中輸入具體意見,並單擊確定。
普通使用者執行工單。
以普通使用者帳號,登入Data Management 5.0。
在工單詳情頁面的執行地區,單擊執行變更,在彈窗中配置如下資訊,並單擊確定執行。
配置項
說明
是否立即執行
選擇是否立即執行,支援:
立即執行:提交即刻執行。
定時執行:按需指定在業務特定時間執行。
預設為立即執行。
是否事務控制
選擇是否開啟事務控制開關:
開啟:遇到失敗則全部復原(僅支援DML語句,不支援DDL語句)。
關閉:逐條提交,遇到失敗則終止但不復原。
預設為關閉。
是否備份資料
選擇是否開啟備份資料開關:
開啟:針對本次變更中被
UPDATE和
DELETE
語句影響的資料,系統將產生對應的INSERT
指令碼,以對原資料進行備份。關閉:不對上述資料產生備份指令碼。
預設為開啟。
說明單擊確定執行後,系統將自動開始執行。
查看任務進展並驗證
以管理員帳號,單擊基本資料地區變更資料庫的名稱。在提示框中,單擊查詢。
頁面將自動跳轉至SQL Console頁面。
在SQL Console視窗中,輸入查詢的SQL語句後,單擊執行。
例如輸入查詢當前資料庫下表的SQL語句。
SHOW TABLES;
說明系統在進行無鎖結構變更時,產生了兩張暫存資料表。
在頂部功能表列中,選擇 。
說明若您使用的是極簡模式的控制台,請單擊控制台左上方的表徵圖,選擇
。單擊目標任務號,進入任務執行詳情頁。
單擊目標任務操作列下的進度按鈕。
在無鎖結構變更頁,查看當前的整體拷貝進度。
變更完成後,對錶結構進行驗證。
big_table
的表結構已變更,暫存資料表已被刪除。