問題描述
阿里雲RDS MySQL版執行個體由於Binlog檔案佔滿磁碟空間,會導致執行個體自動鎖定,在執行個體詳情頁面的運行狀態為“鎖定中”。且在執行個體的監控與警示頁面磁碟空間圖中確認日誌空間使用量較高,下圖為樣本圖,具體值以實際環境為準。
問題原因
MySQL執行個體可能會由於大事務快速產生Binlog檔案,導致執行個體空間滿,為避免資料丟失,會對執行個體進行自動鎖定,磁碟鎖定之後,將無法進行寫入操作。
解決方案
前提條件
對於RDS MySQL 5.5、5.6、5.7和8.0版本的執行個體,建議您提前擴容磁碟,保證磁碟使用率不超過80%,擴容方法請參見變更配置。
注意事項
執行清理無用本地日誌步驟前,請先查看以下注意事項:
Binlog檔案記錄執行個體的事務資訊,是RDS執行個體高可用和可恢複性的基礎,建議不要關閉。可以通過一鍵上傳Binlog功能上傳到OSS來釋放磁碟空間或者修改本地Binlog設定,詳情請參見本地Binlog設定
清理Binlog檔案有延遲,請耐心等待執行個體日誌空間使用量的下降。
一鍵上傳Binlog會在後台非同步提交清理任務,且清理任務會將已寫入的Binlog上傳到OSS(非使用者購買的OSS)上,然後再從執行個體空間中刪除Binlog檔案,當前正在被寫入的Binlog檔案由於未完成寫入,是不可以被清理的。因此,清理過程會有一定延遲,建議您單擊一鍵上傳Binlog後耐心等待一定時間,請勿多次單擊該按鈕,可以在基本資料頁中查看磁碟空間是否增大。
由於DML等操作(比如涉及大欄位的DML操作)會快速產生Binlog,可能會導致上傳Binlog檔案到備份空間並且從執行個體空間中刪除的處理速度跟不上執行個體產生Binlog檔案的速度,在這種情況下,建議您考慮升級磁碟空間,並且排查Binlog快速產生的原因。
一鍵上傳Binlog
登入RDS管理主控台,在頁面左上方,選擇執行個體所在地區。
找到目標執行個體,單擊執行個體ID。
在左側導覽列中單擊備份恢複。
在右上方單擊一鍵上傳Binlog,在彈出的對話方塊中單擊確定。
說明一鍵上傳Binlog功能會有一定延遲,請耐心等待15分鐘左右。
本操作會刪除除最新的兩個本地記錄檔外的所有記錄檔,如果只有兩個記錄檔,本操作不會刪除任何檔案。
基礎系列執行個體不支援一鍵上傳Binlog功能,建議您參見後續修改本地日誌(Binlog)檔案設定刪除本地日誌。
修改本地日誌(Binlog)檔案設定
登入RDS管理主控台,在頁面左上方,選擇執行個體所在地區。
找到目標執行個體,單擊執行個體ID。
在左側導覽列中單擊備份恢複。
選擇備份設定頁簽,單擊本地日誌保留原則後的編輯,根據您的實際情況,設定對應的值。
說明保留時間長度若設定為0,表示本地不儲存Binlog日誌,直接上傳至OSS。
後續維護
若鎖定問題已解決,為了預防再次出現鎖定問題,建議設定在資源不足時,執行個體自動擴容儲存空間的功能,詳情請參見設定儲存空間自動擴容。
更多資訊
更多執行個體空間滿的解決方案請參見如下連結: