歷史數(shù)據(jù)清理
當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)存儲(chǔ)空間不足、表數(shù)據(jù)量過(guò)大導(dǎo)致查詢速度變慢等情況時(shí),您可以使用數(shù)據(jù)管理DMS提供的歷史數(shù)據(jù)清理功能,定期清理歷史數(shù)據(jù),以提高數(shù)據(jù)庫(kù)查詢性能和響應(yīng)速度、避免因存儲(chǔ)空間不足而導(dǎo)致數(shù)據(jù)庫(kù)性能下降及歷史數(shù)據(jù)堆積對(duì)生產(chǎn)環(huán)境的穩(wěn)定性產(chǎn)生影響。
前提條件
數(shù)據(jù)庫(kù)類型為MySQL。
數(shù)據(jù)庫(kù)實(shí)例的管控模式為穩(wěn)定變更或安全協(xié)同。管控模式的更多信息,請(qǐng)參見(jiàn)管控模式。
操作步驟
- 登錄數(shù)據(jù)管理DMS 5.0。
在頂部菜單欄中,選擇 。
說(shuō)明若您使用的是極簡(jiǎn)模式的控制臺(tái),請(qǐng)單擊控制臺(tái)左上角的圖標(biāo),選擇
。填寫數(shù)據(jù)變更工單申請(qǐng)后,單擊提交申請(qǐng)。
部分參數(shù)信息說(shuō)明如下:
參數(shù)名
說(shuō)明
數(shù)據(jù)庫(kù)
選擇有變更權(quán)限的數(shù)據(jù)庫(kù)。若您只有目標(biāo)數(shù)據(jù)庫(kù)的只讀權(quán)限或表的變更權(quán)限則無(wú)法提交工單申請(qǐng),具體請(qǐng)參見(jiàn)查看我的權(quán)限。
清理配置
填寫表名、時(shí)間字段、時(shí)間精度、保留時(shí)長(zhǎng)(日)和過(guò)濾條件(可空),系統(tǒng)將根據(jù)這些信息,自動(dòng)生成相應(yīng)的清理腳本。
說(shuō)明如果是邏輯表,請(qǐng)?zhí)顚戇壿嫳砻?/p>
設(shè)置保留時(shí)長(zhǎng)可指定系統(tǒng)清理數(shù)據(jù)表中超過(guò)保留時(shí)長(zhǎng)的數(shù)據(jù)。例如,保留時(shí)長(zhǎng)設(shè)為7天,系統(tǒng)會(huì)清理數(shù)據(jù)表中保留時(shí)間超過(guò)7天的數(shù)據(jù)。
例如:表名(api_call_record_11)、時(shí)間列(gmt_create)、保留時(shí)長(zhǎng)(7)、過(guò)濾條件(status = 1 or status=2),將會(huì)生成SQL:
DELETE FROM `api_call_record_11` WHERE `gmt_create` < SUBDATE(CURDATE(),INTERVAL 7 DAY) AND (status = 1 or status=2);
。定時(shí)執(zhí)行
DMS在清理數(shù)據(jù)時(shí)會(huì)掃描全表,根據(jù)主鍵或非空唯一鍵分批執(zhí)行,推薦執(zhí)行時(shí)間設(shè)置為業(yè)務(wù)低峰期,且設(shè)置較低的執(zhí)行頻率。
說(shuō)明定時(shí)執(zhí)行的最小時(shí)間間隔為一小時(shí)。默認(rèn)每天02:00執(zhí)行。
策略配置
您可以指定執(zhí)行時(shí)長(zhǎng),任務(wù)在執(zhí)行指定時(shí)間后會(huì)自動(dòng)暫停,避免在業(yè)務(wù)高峰期影響業(yè)務(wù)。
不指定執(zhí)行時(shí)長(zhǎng),直到清理結(jié)束。
指定時(shí)長(zhǎng)(小時(shí)):指定執(zhí)行時(shí)長(zhǎng),避免下游同步鏈路(如DTS或ADB)消費(fèi)能力受限,從而影響DMS服務(wù)。
在指定時(shí)長(zhǎng)后,您還可以選擇是否啟用定期Optimize Table功能(碎片空間整理)。系統(tǒng)默認(rèn)關(guān)閉此功能,您可手動(dòng)開(kāi)啟,開(kāi)啟后可設(shè)置間隔數(shù)(默認(rèn)為60)。例如間隔數(shù)設(shè)置為60,則系統(tǒng)會(huì)在清理60次數(shù)據(jù)后,發(fā)起并執(zhí)行一次碎片空間整理。
說(shuō)明僅數(shù)據(jù)庫(kù)類型為RDS MySQL、PolarDB MySQL支持開(kāi)啟Optimize Table功能。
執(zhí)行碎片空間整理的時(shí)長(zhǎng)與策略配置中指定執(zhí)行的時(shí)長(zhǎng)有關(guān),即碎片空間整理會(huì)隨著執(zhí)行任務(wù)時(shí)長(zhǎng)結(jié)束而停止。
變更相關(guān)人
設(shè)置的相關(guān)人員都可查看工單,并協(xié)同工作,非相關(guān)人員則不能查看工單(管理員、DBA除外)。
提交申請(qǐng)后,您可以開(kāi)啟主備延遲檢查并確定閾值、修改SQL。
(可選)開(kāi)啟主備延遲檢查、設(shè)置閾值。設(shè)置主備延遲檢查并確定閾值,以避免主備延遲過(guò)大,從而影響主備實(shí)例切換。
您可以在基本信息區(qū)域,單擊分批執(zhí)行配置,設(shè)置合理的主備延遲閾值(單位:秒)。如果主備延遲大于閾值時(shí),將中斷SQL執(zhí)行。
說(shuō)明目前僅支持RDS MySQL數(shù)據(jù)庫(kù)使用該功能。
(可選)修改SQL。
提交申請(qǐng)后,系統(tǒng)將自動(dòng)進(jìn)行SQL預(yù)檢查。如果預(yù)檢查失敗,您可以根據(jù)失敗原因修改SQL,修改后重試。
說(shuō)明在提交審批前,您可以修改分批執(zhí)行配置和定時(shí)配置,一旦提交審批后,您將不能再修改這些信息。
單擊提交審批。安全協(xié)同實(shí)例會(huì)根據(jù)設(shè)置的審批規(guī)則進(jìn)行審批,穩(wěn)定變更實(shí)例將自動(dòng)通過(guò)審批。
工單審批通過(guò)后,系統(tǒng)將自動(dòng)生成定時(shí)任務(wù),同時(shí)發(fā)送郵件給工單責(zé)任人。您可以在基本信息區(qū)域,單擊查看定時(shí)任務(wù),查看定時(shí)調(diào)度信息,同時(shí)您還可以進(jìn)行如下操作。
暫停調(diào)度
說(shuō)明如果需要關(guān)閉調(diào)度,請(qǐng)前往歷史數(shù)據(jù)清理工單詳情頁(yè),單擊右上角的關(guān)閉工單,再填入關(guān)閉工單的具體原因,單擊確定即可。
重啟調(diào)度
說(shuō)明關(guān)閉工單后,若需要重啟調(diào)度只能重新提工單。
修改工單責(zé)任人
工單責(zé)任人默認(rèn)是工單提交者。定時(shí)調(diào)度的暫停、重啟,只有工單責(zé)任人有權(quán)限執(zhí)行,每次調(diào)度執(zhí)行的郵件通知,也只會(huì)發(fā)給責(zé)任人。
定時(shí)任務(wù)生成后,系統(tǒng)將會(huì)按照設(shè)置的定時(shí)策略,定時(shí)執(zhí)行生成的SQL腳本。可以在工單中查看所有的調(diào)度信息以及每次調(diào)度的詳情。
說(shuō)明每次定時(shí)調(diào)度時(shí),會(huì)檢查當(dāng)前工單是否存在還在執(zhí)行中的調(diào)度任務(wù),如果還有任務(wù)在執(zhí)行,本次調(diào)度將不會(huì)生成SQL任務(wù),所以您需要合理控制定時(shí)執(zhí)行的頻率。
常見(jiàn)問(wèn)題
在執(zhí)行歷史數(shù)據(jù)清理工單過(guò)程中進(jìn)行表碎片空間整理會(huì)影響業(yè)務(wù)嗎?
若您的目標(biāo)實(shí)例已開(kāi)啟了無(wú)鎖結(jié)構(gòu)變更,則在執(zhí)行歷史數(shù)據(jù)清理工單時(shí)進(jìn)行表碎片空間整理不會(huì)影響業(yè)務(wù)。若實(shí)例未開(kāi)啟無(wú)鎖結(jié)構(gòu)變更,建議您在業(yè)務(wù)低峰時(shí)執(zhí)行表碎片空間整理,減少對(duì)業(yè)務(wù)的影響。開(kāi)啟無(wú)鎖結(jié)構(gòu)變更的操作,請(qǐng)參見(jiàn)開(kāi)啟無(wú)鎖結(jié)構(gòu)變更。
碎片整理如果執(zhí)行時(shí)間過(guò)長(zhǎng),是否支持停止?
如果整理碎片時(shí)間過(guò)長(zhǎng),您可以在工單詳情頁(yè)的執(zhí)行區(qū)域暫停任務(wù)。