若您需要在不鎖表的前提下變更大量表資料,您可使用Data Management的無鎖變更。該功能通過將單個SQL拆分成多個批次執行,以實現不鎖表進行表資料變更,同時也可以減少DML操作對資料庫效能,空間等的影響。本文介紹在DMS中進行無鎖資料變更的方法。
前提條件
支援的資料庫類型:
MySQL:RDS MySQL、PolarDB MySQL版、MyBase MySQL、PolarDB分布式版、其他來源MySQL
PostgreSQL:RDS PostgreSQL、PolarDB PostgreSQL版、MyBase PostgreSQL、其他來源PostgreSQL
MariaDB:RDS MariaDB、其他來源MariaDB
OceanBase MySQL模式
PolarDB PostgreSQL版(相容Oracle)
執行個體的管控模式為穩定變更或安全協同。更多資訊,請參見查看管控模式。
注意事項
DML無鎖變更僅支援單表、簡單的SQL操作(例如UPDATE、DELETE等)。
操作步驟
- 登入Data Management 5.0。
在頂部功能表列中,選擇 。
說明若您使用的是極簡模式控制台,請單擊左上方的表徵圖,在導覽列中選擇
。配置無鎖變更工單,配置完成後,單擊提交申請。部分參數資訊說明如下:
說明以安全協同執行個體舉例配置。自由操作或穩定變更管控模式的執行個體,在配置時僅需設定資料庫與變更SQL。
配置項
是否必填
說明
資料庫
是
搜尋並選擇目標資料庫。
說明您需要有目標資料庫的變更許可權。更多資訊,請參見查看我的許可權。
執行方式
是
選擇工單的執行方式:
審批通過後,提交者執行。
審批通過後,自動執行。
最後一個審批人執行。
說明管理員可以在組態管理。
中,修改執行方式列表。具體操作,請參見變更SQL
是
輸入DML(Data Manipulation Language),例如
UPDATE
、DELETE
、INSERT_SELECT
。說明如果變更SQL輸入的是DDL,則您進行的是DDL無鎖結構變更任務。更多資訊請參見通過無鎖變更工單實現無鎖結構變更。
SQL文本
否
若變更SQL選擇了文本,才會出現該配置項。在SQL文字框中,輸入可直接執行的SQL語句。
說明多條SQL之間, 請用英文分號(;)隔開。
提交工單時會自動校正SQL文法正確性,不正確則無法提交。
附件
否
若變更SQL選擇了附件,才會出現該配置項。上傳變更SQL附件。
說明附件僅支援.txt、.zip和.sql的檔案類型,最大不能超過15 MB。
復原SQL
否
可直接執行的SQL語句,變更指令碼對應的逆向指令碼。
SQL文本
否
復原SQL選擇了文本,才會出現該配置項。輸入復原SQL,復原SQL為變更SQL對應的逆向指令碼。
附件
否
復原SQL選擇了附件,才會出現該配置項。單擊上傳檔案,上傳復原SQL附件。
說明附件僅支援.txt、.zip和.sql的檔案類型,最大不能超過15 MB。
變更相關人
否
設定的相關人員都可查看工單,並協同工作,非相關人員則不能查看工單(管理員、DBA除外)。
工單附件
否
上傳工單附件,補充當前工單資訊。
提交申請後,您可以開啟主備延遲檢查並確定閾值、修改SQL。
(可選)開啟主備延遲檢查、設定閾值。設定主備延遲檢查並確定閾值,以避免主備延遲過大,從而影響主備執行個體切換。
您可以在基本資料地區,單擊分批執行配置,設定合理的主備延遲閾值(單位:秒)。如果主備延遲大於閾值時,將中斷SQL執行。
說明目前僅支援RDS MySQL資料庫使用該功能。
(可選)修改SQL。
提交申請後,系統將自動進行SQL預檢查。如果預檢查失敗,您可以根據失敗原因修改SQL,修改後重試。
單擊提交審批。安全協同執行個體會根據設定的審批規則進行審批,穩定變更執行個體將自動通過審批。
等待審批通過後,在工單詳情頁的執行地區,單擊執行變更。
說明您可以在工單詳情頁的審批地區,查看審批進展。
配置任務執行參數。
配置項
說明
執行策略
立即執行:系統預設,單擊確認執行後立即執行工單任務。
定時執行:選擇任務開始執行時間。單擊確認執行後,在指定的時間執行該任務。
指定結束時間
開啟:選擇任務結束時間。如果任務在指定結束時間之前沒有執行完畢,則系統將不再繼續執行未完成的SQL任務,防止高峰期執行任務,影響業務運作。
關閉:系統預設。
單擊確定執行。
說明已暫停任務重啟後,會重新開始執行任務。
您可以在執行地區,查看任務執行狀態、任務設定、詳情和調度日誌。
相關文檔
在進行無鎖資料變更後,您還可能需要進行如下操作:
無鎖資料變更的相關API如下:
常見問題
Q:無鎖資料變更是否支援複雜的SQL操作?
A:不支援。例如CREATE_INDEX和多表操作(例如DELETE語句中包含JOIN)。更多支援的SQL類型,請參見使用限制。