無鎖數(shù)據(jù)變更
當(dāng)業(yè)務(wù)累積了大量數(shù)據(jù)時(shí),需要對在線數(shù)據(jù)與歷史數(shù)據(jù)進(jìn)行分隔管理,或定期清除表中數(shù)據(jù)。DMS的無鎖數(shù)據(jù)變更功能將結(jié)合表中的主鍵或非空唯一鍵,分批對表中的目標(biāo)數(shù)據(jù)進(jìn)行操作,在保證執(zhí)行效率的同時(shí),盡可能地減小了對數(shù)據(jù)庫性能、空間的影響。
注意事項(xiàng)
無鎖數(shù)據(jù)變更僅支持單表、簡單的SQL操作(例如SELECT、UPDATE、DELETE等),不支持多表操作(例如DELETE語句中包含JOIN)。
操作步驟
本示例通過無鎖數(shù)據(jù)變更功能將big_table
表中的long_text_b
字段的數(shù)據(jù)批量改為random long text
。
普通用戶提交工單。
以普通用戶賬號登錄數(shù)據(jù)管理DMS 5.0。
在頁面頂部,選擇
。說明若您使用的是極簡模式的控制臺,請單擊控制臺左上角的圖標(biāo),選擇
。配置相關(guān)信息,并單擊提交申請。
其中部分參數(shù)的說明如下。
參數(shù)名
是否必填
說明
數(shù)據(jù)庫
是
選擇
poc_dev
庫。執(zhí)行方式
是
選擇工單的執(zhí)行方式:
審批通過后,提交者執(zhí)行。
審批通過后,自動執(zhí)行。
最后一個(gè)審批人執(zhí)行。
說明管理員可以在配置管理。
中,修改執(zhí)行方式列表。具體操作,請參見變更SQL
是
輸入如下
UPDATE
語句。將big_table
表中的long_text_b
字段的數(shù)據(jù)批量改為random long text
。UPDATE `big_table` SET `long_text_b` = 'random long text' WHERE id < 1000000;
SQL文本
否
若變更SQL選擇了文本,才會出現(xiàn)該配置項(xiàng)。在SQL文本框中,輸入可直接執(zhí)行的SQL語句。
說明多條SQL之間, 請用英文分號(;)隔開。
提交工單時(shí)會自動校驗(yàn)SQL語法正確性,不正確則無法提交。
附件
否
若變更SQL選擇了附件,才會出現(xiàn)該配置項(xiàng)。上傳變更SQL附件。
說明附件僅支持.txt、.zip和.sql的文件類型,最大不能超過15 MB。
回滾SQL
否
可直接執(zhí)行的SQL語句,變更腳本對應(yīng)的逆向腳本。
SQL文本
否
回滾SQL選擇了文本,才會出現(xiàn)該配置項(xiàng)。輸入回滾SQL,回滾SQL為變更SQL對應(yīng)的逆向腳本。
附件
否
回滾SQL選擇了附件,才會出現(xiàn)該配置項(xiàng)。單擊上傳文件,上傳回滾SQL附件。
說明附件僅支持.txt、.zip和.sql的文件類型,最大不能超過15 MB。
變更相關(guān)人
否
設(shè)置的相關(guān)人員都可查看工單,并協(xié)同工作,非相關(guān)人員則不能查看工單(管理員、DBA除外)。
在工單詳情頁中,單擊分批執(zhí)行配置按鈕,設(shè)置以下參數(shù),單擊提交修改。
確認(rèn)工單詳情信息。
說明您可以在工單詳情頁中,查看工單的詳情信息,同時(shí)系統(tǒng)也會對將要執(zhí)行的SQL進(jìn)行執(zhí)行前的預(yù)檢查,包括SQL語法解析、安全規(guī)則中的SQL類型校驗(yàn)、工單提交人的權(quán)限檢查、預(yù)計(jì)檢查掃描行數(shù)等。
確認(rèn)信息無誤且預(yù)檢查通過后,單擊提交審批,并在彈窗中單擊確認(rèn)。
重要在提交審批前,您可以修改工單內(nèi)容和定時(shí)配置,一旦提交審批后,將不能修改相關(guān)信息。
管理員審批并執(zhí)行工單。
以管理員賬號登錄數(shù)據(jù)管理DMS 5.0。
在DMS控制臺首頁我的工單區(qū)域,單擊待處理工單。
在我的工單頁面,單擊目標(biāo)工單號。
在工單詳情頁,確認(rèn)工單變更信息,單擊同意。
在審批意見文本框中輸入具體意見,并單擊確定。
單擊執(zhí)行變更,選擇執(zhí)行時(shí)間,并單擊確定執(zhí)行。
單擊確定執(zhí)行后,系統(tǒng)將自動開始執(zhí)行。
說明默認(rèn)為立即執(zhí)行,您也可以自行選擇開始的執(zhí)行時(shí)間。
若您選擇指定結(jié)束時(shí)間,系統(tǒng)在時(shí)間到達(dá)后將不再執(zhí)行未完成的SQL,該功能主要為了防止在高峰期影響業(yè)務(wù)的運(yùn)作。
在執(zhí)行區(qū)域,單擊詳情,并在彈窗中單擊執(zhí)行進(jìn)度,查看任務(wù)執(zhí)行進(jìn)展。
管理員驗(yàn)證任務(wù)。
以管理員賬號登錄數(shù)據(jù)管理DMS 5.0。
在數(shù)據(jù)庫實(shí)例列表中展開
POC_dev
實(shí)例,雙擊poc_dev
數(shù)據(jù)庫,進(jìn)入SQL Console頁。在SQL Console窗口中,輸入如下查詢語句,單擊執(zhí)行,此時(shí)發(fā)現(xiàn)
long_text_b
字段的數(shù)據(jù)已被更新。SELECT * FROM `big_table`;