以下是MongoDB在CentOS上的故障恢復步驟:
檢查服務狀態
sudo systemctl status mongod # 查看服務是否運行
sudo systemctl start mongod # 啟動服務(若未運行)
查看日志定位問題
sudo tail -f /var/log/mongodb/mongod.log # 查看MongoDB日志
sudo journalctl -xe | grep mongod # 查看系統日志中的MongoDB錯誤
驗證配置文件
檢查/etc/mongod.conf中dbPath(數據目錄)、logPath(日志路徑)、port(端口)等配置是否正確。
處理權限與資源問題
sudo chown -R mongod:mongod /var/lib/mongo # 假設數據目錄為/var/lib/mongo
df -h # 確保有足夠空間
從.tar.gz備份恢復
sudo tar zxvf /path/to/backup.tar.gz -C / # 解壓備份文件
sudo mv /data/db /var/lib/mongo # 移動數據到標準目錄(若需)
從.bson備份恢復
sudo yum install -y mongodb-org-tools # 安裝恢復工具
sudo mongorestore --db <數據庫名> /path/to/backup.bson # 恢復指定數據庫
sudo mongorestore --drop --db <數據庫名> /path/to/backup.bson # 恢復前清空現有數據(可選)
mongorestore --oplogReplay /path/to/backup/directory # 回放Oplog還原到故障前狀態
修復損壞數據文件
若數據文件損壞,可嘗試使用mongod --repair命令修復(需停止服務):
sudo mongod --dbpath /var/lib/mongo --repair # 修復數據文件
從第三方工具恢復
可使用MongoDB Repair等工具修復損壞的數據庫文件(需謹慎選擇工具,避免數據進一步損壞)。
連接MongoDB并檢查數據:
mongo
show dbs # 查看數據庫列表
use <數據庫名>
db.<集合名>.find() # 檢查集合數據
確保服務正常運行:
sudo systemctl status mongod