mongodb-clients(包含mongorestore),需先執行以下命令安裝:sudo apt update && sudo apt install mongodb-clients
/var/lib/mongodb)有寫入權限。為避免恢復過程中數據沖突,建議先停止MongoDB服務:
sudo systemctl stop mongod
若備份時使用了--gzip選項壓縮(如mongodump --gzip --out /backups/backup),需先解壓:
tar -xzvf /backups/mongodb_backup_$(date +%Y%m%d).tar.gz -C /tmp/restore_temp
解壓后將備份文件放置在臨時目錄(如/tmp/restore_temp),便于后續操作。
使用mongorestore命令恢復數據,根據備份類型選擇對應參數:
dump文件夾,內有多個數據庫子目錄):mongorestore /tmp/restore_temp/dump
mydb):mongorestore --db mydb /tmp/restore_temp/dump/mydb
mydb.mycollection.bson):mongorestore --db mydb --collection mycollection /tmp/restore_temp/dump/mydb/mycollection.bson
mongorestore --drop /tmp/restore_temp/dump # --drop會先刪除目標數據庫/集合,再恢復
恢復完成后,重啟MongoDB服務:
sudo systemctl start mongod
使用mongo shell連接數據庫,檢查數據是否恢復成功:
mongo
> use mydb # 切換到目標數據庫
> show collections # 查看集合列表
> db.mycollection.find().pretty() # 查詢集合中的文檔
--oplog選項(mongodump --oplog --out /backups/backup),恢復時添加--oplogReplay選項(mongorestore --oplogReplay /backups/backup)。mongodump會將備份存儲在--out指定的目錄(如/backups/backup),其中包含dump文件夾(所有數據庫的備份)。