MongoDB备份与恢复
1、mongodump数据备份
语法: mongodump -h dbhost -d dbname -o dbdirectory 参数 -p,–port:端口 -h,–host:IP地址 -d,–db:数据库 -c,–collection:备份的集合名称 -q,–query:备份数据的条件表达式 -o,–out:备份文件的存放位置 -u,–username:用户名 (可选) -p,–password:密码 (可选) –authenticationDataBase:认证数据库(若数据库开启了认证该参数必须传!)
示例
#备份所有数据库 # 非认证数据库 mongodump --port=27017 -h 127.0.0.1 -o /data/mongodb_backup # 认证数据库,--port可以不传,直接写在ip后即可 mongodump -h 127.0.0.1:27017 -o /data/mongodb_backup -u root -p 123456 --authenticationDataBase admin # 集群模式mongos备份 ./mongodump --uri="mongodb://account:password@mon1:3001,mon1:3002,mon1:3003" -d dbName -o /data/mongodb_backup #具体根据实际数据库是否是开启了认证选择,下面都以认证过的为例,没认证只是少传几个参数 #备份指定数据库db1 mongodump -d db1 -h 127.0.0.1:27017 -o /data/mongodb_backup -u root -p 123456 --authenticationDatabase admin #备份db1数据库中的test集合中的name="张三"的记录 mongodump -d db1 -c test -q '{name:{$eq:"张三"}}' -h 127.0.0.1:27017 -o /data/mongodb_backup -u root \ -p 123456 --authenticationDatabase admin
2、mongorestore数据恢复
语法: mongorestore -h dbhost -d dbname --dir dbdirectory 参数 -p,–port -h,–host -d,–db 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2 -c,–collection -dir:恢复文件存放的位置,如果指定了数据库文件夹或者集合文件,则只恢复当前数据库或者当前集合,如果没有指定, 则恢复当前目录下所有备份数据。 –drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦! -u,–user -p,–password –authenticationDatabase
示例
#恢复所有数据库 mongorestore -h 127.0.0.1:27017 --dir /data/mongodb_backup #恢复制定数据库 mongorestore -h 127.0.0.1:27017 -d bd1 --dir /data/mongodb_backup
MongoDB数据导入与导出
1、导出工具:mongoexport
概念:
mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,
也可以根据指定的条件导出数据。
语法: mongoexport -d dbname -c collectionname -o file --type json/csv -f field 参数说明: -d :数据库名 -c :collection名 -o :输出的文件名 –type : 输出的格式,默认为json -f :输出的字段,如果-type为csv,则需要加上-f “字段名”
示例:
#备份db1库下的test集合 (备份文件的名字可以自定义,默认导出了JSON格式的数据) mongoexport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test \ -o /home/mongod/backup/test.dat #导出CSV格式的数据 mongoexport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test \ --type=csv -f "id,name" -o /home/mongod/backup/test_csv.dat
2、数据导入:mongoimport
语法: mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field 参数说明: -d :数据库名 -c :collection名 -type :导入的格式默认json -f :导入的字段名 –drop 插入之前先删除原有的 –headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段 –file :要导入的文件
示例:
#将之前恢复的数据导入 mongoimport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test \ --file /home/mongod/backup/test.dat #将之前恢复的CSV格式数据导入 mongoimport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test \ --type=csv --headerline --file /home/mongod/backup/test_csv.dat
来源:https://blog.csdn.net/WQH_Boss/article/details/134413455