一、 备份与恢复
在创建MongoDB服务的时候,通过--dbpath指定目录就是存放mongdb数据库文件目录,我们可以通过复制这些文件实现数据库的冷备,但是这种方式不太安全。因此在冷备前,要关闭服务器。
>use admin
>db.shutdownServer()
或者可以通过fsync方式使MongoDB将数据写入缓存中,然后再复制备份
>use admin
>db.runCommand({"fsync":1,"lock":1})
这个时候我往user 插入了一条数据 user_name:steven ,再执行db.user.find()后,并没有查到这条记录,说明记录没有直接写入数据库,而是被缓冲到缓存中了。
备份完后,要解锁(防止这个时候停电或其它原因,导致未缓存中的数据丢失)。
>use admin
>db.$cmd.sys.unlock.findOne()
>db.currentOp()
如果currentOp 只返回{"inprog":[]}结果,说明解锁成功。
解锁后,缓存中的数据会写入数据库文件中,我们去查询user结果。
二、 monogodump与mongorestore
>use vevideo_vt
./mongodump --host 192.168.5.241:27017 -u al_user -p 123456 -d vevideo_vt -c ad_district --authenticationDatabase admin -o dump
./mongorestore --host 192.168.5.242:27017 -u al_user -p 123456 --authenticationDatabase admin -d vevideo_vt -c ad_district --dir dump/vevideo_vt/*.bson --drop