DMS普通資料變更功能支援直接執行或定時執行SQL語句來修改資料庫中的資料,例如INSERT、UPDATE、DELETE、TRUNCATE、CREATE TABLE等SQL。DMS可以在預檢查階段對SQL的正確性進行校正、在審批階段檢查待執行的SQL是否會影響資料庫效能及是否允許提交工單者執行此SQL,有效控制SQL變更的風險。本文介紹如何提交普通資料變更工單。
前提條件
執行個體的管控模式為穩定變更或安全協同模式。更多資訊,請參見管控模式。
注意事項
無論工單審批通過與否均可關閉工單,避免審批通過後誤執行工單任務。
建議您在測試環境執行資料變更也通過工單進行管理。通過工單進行變更會有資料備份、行數校正等保障,如果操作不符合預期可以快速恢複。
說明如果擔心審批工單影響研發效率,可以設定無審批。具體操作,請參見SQL變更。
如果已配置邏輯庫、邏輯表、路由演算法,您可以通過一個工單便捷的提交分庫分表的變更操作,無需逐個物理庫表提交。
帶路由演算法配置且更新條件帶路由欄位的書寫,可快速根據條件自動路由到具體物理庫表執行。
若不帶路由演算法配置或變更條件裡不帶路由欄位、路由欄位書寫類型與結構定義不符合這三種情境會造成SQL在每一個分庫分表上逐一執行,執行時間會較久。
操作步驟
- 登入Data Management 5.0。
在頂部功能表列中,選擇 。
說明若您使用的是極簡模式的控制台,請單擊控制台左上方的表徵圖,選擇
。在資料變更工單申請頁面,配置工單參數。部分參數說明如下:
配置項
是否必填
說明
資料庫
是
搜尋並選擇有變更許可權的資料庫。
原因類別
是
選擇資料變更的原因,方便後續尋找。
說明管理員可以在組態管理。
中,配置原因類別列表。具體操作,請參見業務背景
是
詳細描述變更原因或目標,以減少溝通成本。
執行方式
是
選擇工單的執行方式:
審批通過後,提交者執行。
審批通過後,自動執行。
最後一個審批人執行。
說明管理員可以在組態管理。
中,修改執行方式列表。具體操作,請參見影響行數
是
預估本次變更會影響的資料行數。
變更SQL
是
您可選擇文本或附件。
SQL文本
是
若變更SQL選擇了文本,才會出現該配置項。在SQL文字框中,輸入可直接執行的SQL語句。
說明多條SQL之間,請用英文分號(;)隔開。
提交工單時會自動校正SQL文法正確性,不正確則無法提交。
附件
是
若變更SQL選擇了附件,才會出現該配置項。上傳變更SQL附件。
說明附件僅支援.txt、.zip和.sql的檔案類型,最大不能超過15 MB。
復原SQL
否
您可選擇文本或附件。
SQL文本
否
若復原SQL選擇了文本,才會出現該配置項。輸入復原SQL,復原SQL為變更SQL對應的逆向指令碼。
附件
否
若復原SQL選擇了附件,才會出現該配置項。單擊上傳檔案,上傳復原SQL附件。
說明附件僅支援.txt、.zip和.sql的檔案類型,最大不能超過15 MB。
變更相關人
否
設定的相關人員都可查看工單,並協同工作,非相關人員則不能查看工單(管理員、DBA除外)。
工單附件
否
上傳工單附件,補充當前工單資訊。
單擊提交申請。
提交工單後,系統會自動進行預檢查,如果預檢查沒有通過,根據提示修改SQL,然後重試。
預檢查通過後,單擊提交審批,在提示對話方塊中單擊確認。
說明資料變更預設審批模板的審批人為DBA。更改預設審批模板,請參見修改預設審批模板。
審批通過後,單擊執行變更,在任務設定對話方塊中設定任務執行參數,並單擊確定執行。
說明建立工單時,如果執行方式選擇審批通過後,自動執行,系統會自動跳過此步驟。
已暫停任務重啟後,將從暫停位置繼續執行指令碼。
配置項
說明
執行策略
選擇執行策略:
立即執行:單擊確定執行後,立即執行工單任務。
定時執行:指定任務開始執行的時間。例如,在2024年05月22日0時執行任務。
開啟整體事務
選擇是否開啟整體事務,預設關閉。
開啟:執行失敗則全部復原(僅限DML,DDL不在範圍內)。
關閉:逐條提交SQL任務,執行失敗則終止任務,但不復原。
開啟備份
選擇是否開啟備份,預設開啟。開啟後,後續您才可以使用備份檔案快速恢複資料。
說明僅執行UPDATE和DELETE語句時,支援備份資料。
MongoDB和Redis不支援備份資料。
開啟:執行
UPDATE
、DELETE
語句前,系統自動產生對應的備份指令碼附件。如果資料庫類型為MySQL和MariaDB,產生
REPLACE INTO
備份語句。說明MySQL包括:RDS MySQL、PolarDB MySQL版、PolarDB分布式版、其他來源MySQL。
如果資料庫類型為除MySQL、MariaDB外的其他引擎,產生
INSERT
備份語句。
關閉:不產生備份附件。
說明SQL任務的執行會受到安全規則中SQL執行控制模組的監控,例如SQL執行前資料庫鎖逾時機制、資料庫負載檢查、SQL執行後Sleep策略等。如需修改預設的檢測點設定,請參考配置SQL執行控制。
工單執行成功後,在操作列單擊詳情,可查看工單執行狀態、執行次數、影響行數、執行指令碼、日誌等資訊。
工單執行成功後,您可以進入目標資料庫的SQL視窗,查看資料變更是否符合預期。
可選:快速建立復原工單並恢複原資料。
若資料變更不符合預期,可通過建立復原工單或手動提交普通資料變更工單,以快速恢複原資料。如下為您示範如何建立復原工單:
在工單執行地區,單擊目標任務右側的產生復原工單。
選擇復原來源,單擊確認。目前支援如下三種復原來源:
復原文本:在配置工單資訊時,預填寫的復原文本。
復原附件:在配置工單資訊時,預上傳的復原附件。
備份檔案:工單執行過程中產生的備份附件。
說明使用備份檔案恢複原資料的前提是:在執行變更前開啟備份。
(可選):按需修改復原文本、附件或備份檔案。
復原文本:可以直接在SQL文字框中修改。
復原附件或備份檔案:首先將附件下載到本地,再進行修改,最後重新上傳至復原工單。
確認復原資訊無誤後,單擊提交申請。後續工單流程與普通資料變更工單流程相同。
下載備份檔案。
當您需要儲存備份檔案或者需要修改後上傳備份檔案至DMS時,請下載備份檔案。
在操作列,單擊下載備份。備份檔案主要包含以下幾部分內容:
變更的原始SQL語句。
資料變更的查詢SQL語句。
資料變更備份SQL。
例如:
/* [Database]: rds@rm-bp144d5ky4l4rli0417****.mysql.rds.aliyuncs.com:3306【rds mysql】 */ /* [SQL]: UPDATE t_order SET product_id = 88 WHERE id = 10054 [BACKUP SQL]: SELECT * FROM t_order WHERE id = 10054 */ REPLACE INTO `t_order`(`id`,`product_id`,`gmt_create`,`gmt_modified`,`customer_id`,`price`,`status`,`province`) VALUES (10054,81,'2021-12-14 09:44:44','2021-12-14 09:44:44',71,63.45,'Success','杭州');
在備份檔案中提取備份語句,確認備份語句無誤後,重新提交普通資料變更工單並根據實際情況進行資料恢複。
說明如果是
UPDATE
語句的誤操作,且備份語句為INSERT
,需要自行確認恢複的方式。
驗證變更是否符合預期。
在工單詳情頁的基本資料地區,將滑鼠懸浮在資料庫名稱上,單擊查詢。
跳轉至SQL Console查詢表資料是否符合預期。