解決阿里云數(shù)據(jù)庫MySQL實例空間滿自動鎖問題的方法
MySQL實例可能會由于SQL語句、外部攻擊等原因?qū)е聦嵗臻g滿,為避免數(shù)據(jù)丟失,RDS會對實例進行自動鎖定,磁盤鎖定之后,將無法進行寫入操作。
背景信息
當實例由于實例空間滿自動鎖定時,控制臺可以在 基本信息 > 運行狀態(tài)看到如下信息:
本文將介紹造成實例空間滿的常見原因及其相應的解決方法。
常見原因
造成 MySQL實例空間滿的主要有如下四種原因:
?數(shù)據(jù)文件占用高。
?Binlog 文件占用高。
在沒有正確設置本地日志設置或不希望Binlog日志被強制刪除時,可能會由于大事務導致Binlog日志暴增。
?臨時文件占用高。
通常導致臨時文件占用高的原因是由于查詢語句的排序、分組、關(guān)聯(lián)表產(chǎn)生的臨時表文件,或者大事務未提交前產(chǎn)生的binlog cache文件。
?系統(tǒng)文件占用高。
系統(tǒng)文件涉及到ibdata1系統(tǒng)表的空間文件和ib_logfile0、ib_logfile1日志文件。
InnoDB 引擎表由于支持多版本并發(fā)控制(MVCC),因此會將查詢所需的 Undo 信息保存在系統(tǒng)文件 ibdata1 中。如果存在對一個 InnoDB 表長時間不結(jié)束的查詢,而且在查詢過程中表有大量的數(shù)據(jù)變化,則會生成大量的 Undo 信息,導致 ibdata1 文件尺寸增加。由于 MySQL 內(nèi)部機制的限制,ibdata1 文件目前是不支持收縮的。
ib_logfile0和ib_logfile1日志文件保存InnoDB引擎表的事務日志信息,其文件大小尺寸固定,不可以改變。
查看空間使用狀況
當發(fā)現(xiàn)實例空間滿鎖定時,首先您可以通過混合云數(shù)據(jù)庫管理平臺來查看實例空間的使用情況,了解具體是什么文件占用過大。
1.通過 DMS登錄數(shù)據(jù)庫。
2.選擇性能 > 空間,跳轉(zhuǎn)到混合云數(shù)據(jù)庫管理平臺(Hybrid Cloud Database Management,HDM)。
說明 對于第一次進入的用戶需要對HDM進行授權(quán),若已授權(quán),請?zhí)降?/span>4步。
3.在授權(quán)HDM訪問您的云資源信息頁面單擊確定,并在彈出的云資源訪問授權(quán)頁面單擊同意授權(quán)。
4.在庫表空間 > 空間概況中找到空間變化趨勢圖,查看具體的空間占用情況。
解決方法