全部產品
Search
文件中心

:普通資料變更

更新時間:Jun 30, 2024

DMS普通資料變更功能支援直接執行或定時執行SQL語句來修改資料庫中的資料,例如INSERT、UPDATE、DELETE、TRUNCATE、CREATE TABLE等SQL。DMS可以在預檢查階段對SQL的正確性進行校正、在審批階段檢查待執行的SQL是否會影響資料庫效能及是否允許提交工單者執行此SQL,有效控制SQL變更的風險。本文介紹如何提交普通資料變更工單。

前提條件

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

注意事項

  • 無論工單審批通過與否均可關閉工單,避免審批通過後誤執行工單任務。

  • 建議您在測試環境執行資料變更也通過工單進行管理。通過工單進行變更會有資料備份、行數校正等保障,如果操作不符合預期可以快速恢複。

    說明

    如果擔心審批工單影響研發效率,可以設定無審批。具體操作,請參見SQL變更

  • 如果已配置邏輯庫邏輯表路由演算法,您可以通過一個工單便捷的提交分庫分表的變更操作,無需逐個物理庫表提交。

    • 帶路由演算法配置且更新條件帶路由欄位的書寫,可快速根據條件自動路由到具體物理庫表執行。

    • 若不帶路由演算法配置或變更條件裡不帶路由欄位、路由欄位書寫類型與結構定義不符合這三種情境會造成SQL在每一個分庫分表上逐一執行,執行時間會較久。

操作步驟

  1. 登入Data Management 5.0
  2. 在頂部功能表列中,選擇資料庫開發 > 資料變更 > 普通資料變更

    說明

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

  3. 資料變更工單申請頁面,配置工單參數。部分參數說明如下:

    說明

    以選擇安全協同模式的RDS MySQL資料庫舉例。

    配置項

    是否必填

    說明

    資料庫

    搜尋並選擇有變更許可權的資料庫。

    原因類別

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

    說明

    管理員可以在營運管理 > 組態管理中,修改原因類別列表。具體操作,請參見組態管理

    業務背景

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

    執行方式

    選擇工單的執行方式:

    • 審批通過後,提交者執行。

    • 審批通過後,自動執行。

    • 最後一個審批人執行。

    說明

    管理員可以在營運管理 > 組態管理中,修改執行方式列表。具體操作,請參見組態管理

    影響行數

    預估本次變更會影響的資料行數。

    變更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除外)。

    工單附件

    上傳工單附件,補充當前工單資訊。

  4. 單擊提交申請

    提交工單後,系統會自動進行預檢查,如果預檢查沒有通過,根據提示修改SQL,然後重試。

  5. 預檢查通過後,單擊提交審批,在提示對話方塊中單擊確認

    說明

    資料變更預設審批模板的審批人為DBA。更改預設審批模板,請參見修改預設審批模板

  6. 審批通過後,單擊執行變更,在任務設定對話方塊中設定任務執行參數,並單擊確定執行

    說明
    • 建立工單時,如果執行方式選擇審批通過後,自動執行,系統會自動跳過此步驟。

    • 已暫停任務重啟後,將從暫停位置繼續執行指令碼。

    配置項

    說明

    執行策略

    選擇執行策略:

    • 立即執行:單擊確定執行後,立即執行工單任務。

    • 定時執行:指定任務開始執行的時間。例如,在2024年05月22日0時執行任務。

    開啟整體事務

    選擇是否開啟整體事務,預設關閉。

    • 開啟:執行失敗則全部復原(僅限DML,DDL不在範圍內)。

    • 關閉:逐條提交SQL任務,執行失敗則終止任務,但不復原。

    開啟備份

    選擇是否開啟備份,預設開啟。

    說明
    • 僅執行UPDATE和DELETE語句時,支援備份資料。

    • MongoDB和Redis不支援備份資料。

    • 開啟:執行UPDATEDELETE語句前,系統自動產生對應的備份指令碼附件。

      • 如果資料庫類型為MySQL和MariaDB,產生REPLACE INTO備份語句。

        說明

        MySQL包括:RDS MySQLPolarDB MySQL版PolarDB分布式版、其他來源MySQL。

      • 如果資料庫類型為除MySQL、MariaDB外的其他引擎,產生INSERT備份語句。

    • 關閉:不產生備份附件。

    說明

    SQL任務的執行會受到安全規則SQL執行控制模組的監控,例如SQL執行前資料庫鎖逾時機制、資料庫負載檢查、SQL執行後Sleep策略等。如需修改預設的檢測點設定,請參考配置SQL執行控制

    • 工單執行成功後,在操作列單擊詳情,可查看工單執行狀態、執行次數、影響行數、執行指令碼、日誌等資訊。

    • 工單執行成功後,您可以進入目標資料庫的SQL視窗,查看資料變更是否符合預期。

  7. 可選:若資料變更不符合預期,且在設定任務執行參數時,開啟了備份,則可根據如下步驟快速恢複來源資料。

    1. 操作列,單擊下載備份,下載備份檔案。

      備份檔案主要包含以下幾部分內容:

      • 變更的原始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','杭州');
                                          
    2. 在備份檔案中提取備份語句,確認備份語句無誤後,重新提交普通資料變更工單並根據實際情況進行資料恢複。

    說明

    如果是UPDATE語句的誤操作,且備份語句為INSERT,需要自行確認恢複的方式。

  8. 驗證變更是否符合預期。

    1. 工單詳情頁基本資料地區,將滑鼠懸浮在資料庫名稱上,單擊查詢

      image

    2. 跳轉至SQL Console查詢表資料是否符合預期。