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

MongoDB 備份還原與導入導出實戰:mongodump、mongoexport、文件拷貝三大方案對比

     編輯:DB2 教學

MongoDB 備份還原與導入導出實戰:mongodump、mongoexport、文件拷貝三大方案對比

測試驗證三種備份/遷移方案:文件級拷貝 (fsync 鎖)、二進制邏輯備份 (mongodump/restore)、文本導入導出 (mongoimport/export)。文件系統快照法還原失敗,暫不採用。

方案一:文件拷貝 + fsync 鎖 (風險較高,不推薦生產)

# 1. 鎖定寫入、刷盤
> db.fsyncLock()
# 2. 打包數據目錄
tar -czf /root/mongodb_20150505.tar.gz /var/lib/mongo
# 3. 解鎖
> db.fsyncUnlock()

# 還原:停服務 → 刪舊文件 → 解壓 → 刪 mongod.lock → 啟動
service mongod stop
rm -rf /var/lib/mongo/*
tar -xzf /root/mongodb_20150505.tar.gz -C /
rm -f /var/lib/mongo/mongod.lock
service mongod start

缺點:需停寫、停服務、風險大、跨版本/存儲引擎不兼容。

方案二:mongodump / mongorestore (推薦標準備份)

# 全量備份 (當前目錄生成 dump/)
mongodump

# 全量還原
mongorestore /root/dump

# 單庫還原
mongorestore --db test /root/dump/test

# 指定主機/端口/認證/輸出目錄
mongodump --host localhost --port 27017 --out /root/mongodump-2015-05-05
mongorestore --port 27017 --db test /root/mongodump-2015-05-05/test

# 遠程備份/還原 (含用戶名密碼)
mongodump --host mongodb1.example.net --port 3017 -u user -p pass --out /opt/backup/mongodump-2013-10-24
mongorestore --host mongodb1.example.net --port 3017 -u user -p pass /opt/backup/mongodump-2013-10-24

優勢:在線熱備、跨版本兼容、支援壓縮/並行/增量 (oplogReplay)、細粒度庫/集合控制。

方案三:mongoexport / mongoimport (文本級,適合異構遷移/數據交換)

# 導出 CSV 指定欄位
mongoexport --db test --collection tab --type=csv --fields _id,id,size --out /root/test_tab.csv

# 導出 JSON
mongoexport --db test --collection tab --type=json --out /root/test_tab.json

# 查詢導出 (排序/分頁)
mongoexport -d test -c tab --sort '{name:-1}' --limit 2 --skip 2 --out /root/test_tab.json

# 導入 JSON
mongoimport --db mydb --collection tab --file /root/test_tab.json

# 導入 CSV (首行表頭)
mongoimport --db mydb --collection tab --type csv --headerline --file /root/test_tab.csv

注意:JSON 導入會保留 _id,重複鍵報錯;CSV 需 --headerline 或 --fields 指定欄位序。

關鍵參數速查

  • --drop:導入前刪除集合。
  • --upsert:插入或更新 (需 --upsertFields 指定查詢鍵)。
  • --numParallelCollections / --numInsertionWorkers:並行度調優。
  • --writeConcern:寫入關注級別 (預設 majority)。
  • --oplogReplay:時間點恢復 (需備份含 oplog)。

選型建議

場景推薦工具
生產定期備份/災難恢復mongodump + 壓縮 + 異地存儲
叢集遷移/升級mongodump/restore (含 oplogReplay)
小量數據導出分析/交換mongoexport (JSON/CSV)
異構數據導入 (MySQL→Mongo)mongoimport (CSV)
極速冷備份 (可停服務)文件拷貝 + LVM 快照
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved