mongodb 有两组命令可以进行备份恢复的操作分别是:
备份:mongodump
恢复:mongorestore
备份:mongoexport
恢复: mongoimport
Mongodump可以backup整个数据库,而mongoexport要对每个collection进行操作,最主要的区别也是选择的标准是mongoexport输出的JSON比Mongodump的BSON可读性更高,进而可以直接对JSON文件进行操作然后还原数据(BSON转换JSON存在潜在兼容问题)。
备份命令使用方法:
mongoexport –port 27017 -u root -p QjdChina41 -d accountdb -c outorder_document -o XXX.dat –authenticationDatabase admin
-d 数据库名
-c集合名
-o输出名
–authenticationDatabase 认证的数据库
mongodb导入
./mongoimport –host=127.0.0.1 -d accountdb -c outorder_document –file XXX.dat
-d accountdb -c outorder_document
备份
mongodump -uroot -pQjdChina41 –db=proxy -o backup –authenticationDatabase admin
恢复
./mongorestore -uroot -proot –db=test2 /tmp/backup/proxy/ –authenticationDatabase admin
上述使用的root帐号需要提前建立好并且备份需要读的权限,恢复需要读写的权限
首先需要创建dba帐号用于管理admin库的users管理
testrs:PRIMARY> db.createUser(
… {
… user:”dba”,
… pwd:”dba”,
… roles:[ {role:”userAdminAnyDatabase”, db: “admin” } ]
… }
… )
之后建立超级管理员的用户创建之前需要db.auth(”dba”,’dba”)认证通过之后才可以创建root帐号
testrs:PRIMARY> db.createUser(
… {
… user:”root”,
… pwd:”root”,
… roles:[
… { role:”root”,db:”admin” }
… ]
… }
… )