首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 線上安全清空慢查詢日誌完整操作流程

     編輯:MySQL 資料庫相關知識

線上環境若長期運行未清理慢查詢日誌,檔案體積將持續膨脹,佔用大量磁碟空間甚至影響資料庫效能。本文分享一套不停機、無風險的慢查詢日誌切換與清理標準流程,經生產環境驗證可靠。

操作步驟詳解

1. 確認當前慢查詢日誌狀態

SHOW VARIABLES LIKE '%slow%';

重點關注 slow_query_log(是否開啟)、slow_query_log_file(當前日誌檔案路徑)。

2. 暫停慢查詢日誌記錄

SET GLOBAL slow_query_log = OFF;

執行後再次執行 SHOW VARIABLES LIKE '%slow%'; 確認狀態已變為 OFF,此時 MySQL 停止寫入原日誌檔案,釋放檔案鎖定。

3. 變更日誌檔案路徑(關鍵步驟)

SET GLOBAL slow_query_log_file = '/mysqllog/slow_log/slow_queries_3306_new.log';

指定新的日誌檔案路徑,MySQL 將在重新啟用時自動建立新檔案。

4. 重新啟用慢查詢日誌

SET GLOBAL slow_query_log = ON;

再次檢查變數確認新路徑已生效。

5. 驗證新日誌檔案寫入正常

SELECT SLEEP(10) AS a, 1 AS b;

執行一條超過 long_query_time 的測試查詢,隨後檢查新日誌檔案是否記錄了該語句。

6. 備份並清理舊日誌檔案

mv /mysqllog/slow_log/slow_queries_3306.log /mysqlbackup/slow_log/slow_queries_3306.log.bak.20140213

將原日誌檔案移動至備份目錄並重命名(建議加上日期),完成釋放磁碟空間的目的。如需長期保留,可進一步壓縮歸檔。

核心優勢與注意事項

  • 零停機:全程透過動態變數操作,無需重啟 MySQL 服務。
  • 資料不丟失:切換前舊日誌已完整寫入磁碟,切換後新日誌繼續記錄,中間無間隙。
  • 權限要求:操作帳號需具備 SUPER 權限。
  • 路徑預備:新日誌目錄需存在且 MySQL 進程擁有寫入權限。

此流程同樣適用於一般查詢日誌、錯誤日誌等其他基於檔案的日誌類型,是 DBA 日常維護的必備技能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved