首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

/var/log/pacct 巨大檔案導致 MySQL 啟動失敗案例分析:進程記贏日誌佔滿磁碟限制

     編輯:MySQL 綜合教學

故障現象

MySQL 無預警無法啟動。使用 mysql.server 腳本啟動後無任何提示直接結束,mysqld 進程未建立。移除腳本中的輸出重導向後發現錯誤:

File size limit exceeded

排查過程

  1. 檢查資料目錄檔案大小:最大僅數百 MB,非原因。
  2. ulimit -a 查看無檔案大小限制。
  3. 全盤搜尋大檔:find / -size +2048000k 發現 /var/log/pacct 達 2 GB+。

根因

/var/log/pacct 是 accton 進程記贏系統產生的日誌,記錄所有命令執行資訊。系統管理員啟用後未配置日誌輪轉,導致檔案無限增長。MySQL 啟動腳本 mysqld_safe 在某些邏輯中會受單一巨大檔案影響(可能透過 ulimit 繼承或檔案系統配額),導致 File size limit exceeded 錯誤中斷啟動。

解決方案

# 清空巨大檔案
> /var/log/pacct
# 或
truncate -s 0 /var/log/pacct

# 重新啟動 MySQL
/etc/init.d/mysql.server start

服務即刻恢復正常。

預防措施

  • 配置 logrotate 定期輪轉 /var/log/pacct。
  • 監控磁碟使用率與單一檔案大小告警。
  • 評估是否真正需要進程記贏功能,非必要可關閉 accton 服務。

啟動腳本健壯性建議

MySQL 官方啟動腳本 mysqld_safe 應增加對極端檔案大小情況的容錯處理,避免無關日誌檔案導致資料庫服務不可用。

小結

看似無關的系統級日誌檔案過大,竟能阻斷 MySQL 啟動。運維需建立「全盤大檔掃描」與「關鍵服務啟動依賴分析」機制,快速定位此類隱性故障。

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