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

MySQL 日志文件維護操作指南:輪轉、備份與清理

     編輯:MySQL 資料庫相關知識

MySQL 日志維護核心操作:更新日志與通用日志

日志文件隨時間增長會佔用大量磁碟,定期輪轉與備份是 DBA 必備技能。本文匯總 FLUSH LOGS 多種觸發方式及通用日志備份具體步驟。

一、強制生成新更新日志的四種方法

以下操作均會**關閉當前日志、開啟新日志**;若日志文件無擴展名,新文件擴展數字自增 1。

方法命令/語句適用版本/場景
mysqladmin flush-logsmysqladmin -u root -p flush-logs所有版本,推薦
mysqladmin refreshmysqladmin -u root -p refreshMySQL 3.21 及更早版本必須用此法
SQL 語句FLUSH LOGS;客戶端、腳本、定時任務中調用
重啟服務器重啟 mysqld 進程維護窗口、配置變更同步生效時

二、通用日志(General Log)備份具體步驟

通用日志記錄所有連接與查詢,不像更新日志有自動擴展機制,需手動輪轉:

cd /var/lib/mysql          # 進入數據目錄
mv mysql.log mysql.old     # 重命名舊日志
mysqladmin flush-tables    # 刷新表緩存,迫使服務器重新打開日志文件
# 備份 mysql.old 到異地存儲
rm mysql.old               # 確認備份無誤後刪除

注意:flush-tables 而非 flush-logs,因通用日志文件句柄在表緩存中。

三、錯誤日志與慢查詢日志

  • 錯誤日志:通常由 mysqld_safe 重定向至 hostname.err,系統日志輪轉工具(logrotate)管理即可。
  • 慢查詢日志:同更新日志,FLUSH LOGS 或 mysqladmin flush-logs 可輪轉。

四、自動化建議

  1. 配置 logrotate 管理錯誤日志、慢查詢日志(每日輪轉、保留 30 天、壓縮)。
  2. 更新日志/二進制日志:結合 expire_logs_days 參數自動清理,或編寫腳本定時 FLUSH LOGS + 異地備份。
  3. 通用日志:因量大且敏感,**生產環境建議關閉**(general_log=OFF),僅排查問題時臨時開啟。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved