mongodb 备份和恢复
更新:HHH   时间:2023-1-7


mongodb提供了两个命令用来备份(mongodump)和恢复(mongorestore)数据,数据dump出来的格式是BSON的

1.mongodump 备份
用法:bin/mongodump [options]
举例:将本机6666端口的数据库备份到本机的/data/6666目录下
bin/mongodump --port 6666 --directoryperdb -o /data/6666
connected to: 127.0.0.1:6666
all dbs
DATABASE: test  to  /data/6666/test
test.system.indexes to /data/6666/test/system.indexes.bson
1 objects
test.ints to /data/6666/test/ints.bson
4 objects
DATABASE: admin  to  /data/6666/admin

2.mongorestore 恢复
用法:bin/mongorestore [options] [directory or filename to restore from]
举例:将数据库test删除,然后从备份目录恢复
> show dbs
admin  (empty)
local  4.201171875GB
test  0.203125GB
> use test
switched to db test
> db.dropDatabase()
{ "dropped" : "test", "ok" : 1 }
> show dbs
admin  (empty)
local  4.201171875GB
使用mongorestore恢复
bin/mongorestore -host 127.0.0.1:6666 --directoryperdb  /data/6666/ 
connected to: 127.0.0.1:6666
Wed Jul  6 16:37:33 /data/6666/test/ints.bson
Wed Jul  6 16:37:33  going into namespace [test.ints]
Wed Jul  6 16:37:33  4 objects found
Wed Jul  6 16:37:33 /data/6666/test/system.indexes.bson
Wed Jul  6 16:37:33  going into namespace [test.system.indexes]
Wed Jul  6 16:37:33 { name: "_id_", ns: "test.ints", key: { _id: 1 }, v: 0 }
Wed Jul  6 16:37:33  1 objects found
查看数据库是否恢复
> show dbs
admin  (empty)
local  4.201171875GB
test  0.203125GB
mongorestore有个参数--drop,使用此参数,会先将集合里的数据都删除了再恢复
就是说,如果你备份完数据后有新增数据,那么使用--drop,新增的数据会不见
不使用此参数,恢复备份的时候新增的数据依然存在
返回MongoDB数据库教程...