mongodb的备份和修复

//备份

mongodump -d test -o backup //把test数据库备份到backup文件夹下

//恢复

mongorestore -d foo --drop backup/test/ 把备份的test数据库恢复到数据库foo中

//备份前加锁

use admin

db.runCommand({"fsync":1,"lock":1})//返回{"info":"...","ok":1}

//解锁

db.$cmd.sys.unlock.findOne();//返回{"ok":1,"info":"unlock requested"}

db.cuurentOp();//为了确保已经解锁,返回{"inprog":[]}

//修复

未能正常停止MongoDb后应该修复数据库。要是未正常停止,下次启动服务器备份时MongoDb会提示

修复所有数据库最简单的方式就是 加上--repair;mongod --repair 来启动服务。

//修复数据库还能起到压缩数据的作用。闲置的空间在修复后被重新回收。

use test

db.repairDatabases()

通过驱动程序的话是:

{"repairDatabases":1}