摘要:MongoDB Flunted - 硬碟空間不足,異常排除 (2)
記得之前有寫過一次,
但實在是不怎麼方便處理,所以我開始想寫一個簡單的SOP.
因為Log Server的硬碟空間爆炸,開始查原因
兩種原因發生了。
一、MongoDB的Log佔滿了硬碟
二、MongoDB實體佔滿了硬碟
問題一的解決方法是
先查詢LOG檔在哪裡。
可以從
/etc/mongodb.conf 查到 實體檔位置與log檔位飛
dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongodb.log
使用
sudo rm /var/log/mongodb/mongodb.log 刪除 log檔。或則
sudo $ > mongodb.log 將log檔變成一個空檔。
查詢硬碟誰佔最多有一個方法
df -h 查硬碟空間剩下多少。
du -h 查哪個目錄或檔案佔量最大。
第二個問題,實體檔佔滿了硬碟空間
就跑去 /var/lib/mongodb 處理
因為硬碟空間滿了,就會產生mongod.lock,
所以先刪除最沒有用的資料庫檔案,
然後執行修復程序
sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo start mongodb
再使用RockMongo重建資料庫與設定使用者權限
這是使MongoDB復活的程序。
但 Flunted,還是掛掉的狀態下
使用以下程序,讓Flunted 重啟
sudo rm /var/log/td-agent/td-agent.log
sudo /etc/init.d/td-agent restart
cat /var/log/td-agent/td-agent.log
除了Log Server需要重啟外,所有導向Log Server的機器,也要重啟Flunted
到現在應該也處弄完了。
只是沒想到連MySQL 也爆了。
所以也要重啟MySQL
sudo /etc/init.d/mysql restart
這次解救Log Server 也花不少時間。所以留個筆記下來。讓後續維護人員可以參考。(發現之前的筆記,連我也看不懂,真糟糕)