標籤:
mongodb單機:
備份所有的庫:
mongodump --host 10.10.7.33:27019 --gzip --out /home/mongodb/0415_bf
備份指定的庫:
mongodump --host 10.10.10.251:21100 -d dbname --gzip -out /home/mongodb/bjData2
restore恢複:
mongorestore --host <ip>:<port> --gzip /home/mongodb/bjData
Replica Set叢集的備份:
備份資料集:
mongodump -h "ttlsa/10.1.1.155,10.1.1.156,10.1.1.157" --oplog -o /backup/mongodbbackup/
1. 將複製集中要恢複的成員移除叢集
2. 運行mongorestore --oplogReplay命令
| 1 |
# mongorestore --oplogReplay dump/ |
3. 建立oplog
| 12 |
> use local> db.createCollection("oplog.rs", {"capped" : true, "size" : 10000000}) |
4. 恢複oplog
| 1 |
# mongorestore -d local -c oplog.rs dump/oplog.bson |
注意:oplog.bson不位於dump/local/oplog.rs.bson, oplog.bson記錄mongodump過程中發生的操作。
sharding叢集備份與恢複
對於比較小型的分區叢集,可以直接通過mongodump串連到mongos進行備份,備份的檔案將包含config伺服器的中繼資料資訊和實際資料。
對於大型的分區叢集,備份步驟如下:
1. 關閉balancer
注意:串連到mongos而不是config server執行個體。
| 1234 |
> sh.setBalancerState(false) 或> sh.stopBalancer() 或> use config> db.settings.update( { _id: "balancer" }, { $set : { stopped: true } } , true ); |
2. 備份組群中繼資料
使用mongodump備份任意一台config server。
可以直接連接任意一台的config mongod執行個體,也可以通過mongos串連。
| 1 |
# mongodump --db config |
3. 備份shard叢集內各個replica set
可並存執行。
4. 啟用balancer
注意:串連到mongos而不是config server執行個體。
| 1234 |
> sh.setBalancerState(true) 或> sh.startBalancer() 或> use config> db.settings.update( { _id: "balancer" }, { $set : { stopped: false } } , true ); |
mongodb備份與還原