转载:https://www.cnblogs.com/jiekzou/p/9109137.html
系统环境
服务器系统:Windows Server2012 R2
MongoDB:v3.4.4
可以通过命令:mongo -version 查看版本信息
场景:备份数据库smp_maint_2,还原到新建的数据库smp_maint_2_restore中。
MongoDB数据库备份
1、语法:
mongodump -h dbhost -d dbname -o dbdirectory
参数说明:
-h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d: 需要备份的数据库实例,例如:test
-o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。
-c: 需要恢复的集合
-f: 需要导出的字段(省略为所有字段)
-u:用户名
-d:用户密码
mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
2、实例:
先通过服务器上面安装的Mongodb服务器找到服务的所在路径:C:Program FilesMongoDBServer3.4inmongod.exe
先在服务器上面创建文件目录:E:datahomemomgodump
然后以管理员身份打开CMD,然后跳转到Mongodb所在路径,执行如下命令:
mongodump -h 192.168.1.18:27017 -d smp_maint_2 -o E:datahomemomgodump
运行结果如下:
备份完成之后,我们再看下备份目录下面自动创建了一个和数据库名称一样的目录,目录下面有如图所示备份文件
MongoDB数据库恢复
单个collection恢复:
mongoimport -d dbhost -c collectionname –type csv –headerline –file
-type: 指明要导入的文件格式
-headerline: 批明不导入第一行,因为第一行是列名
-file: 指明要导入的文件路径
1、语法:
mongorestore -h dbhost -d dbname --dir dbdirectory
参数或名:
-h: MongoDB所在服务器地址
-d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
--dir: 备份数据所在位置,例如:/home/mongodump/itcast/
--drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!
2、实例:
新建mongodb数据库smp_maint_2_restore,然后执行如下命令:
mongorestore -h 192.168.1.18:27017 -d smp_maint_2_restore --dir E:datahomemomgodumpsmp_maint_2
运行结果如下所示:
还原成功!
转载:https://blog.csdn.net/aafeiyang/article/details/88107884
1.先查看表中数据量:
db.score.find().count();2401
db.student.find().count() 2992
2.进入到Mongo DB的安装目录的此路径下:/home/ubuntu/softwares/mongodb/bin
3.执行备份命令:./mongodump -h 192.168.123.133 -d testBackUp -o /myApplication/mongoDBData
3. 删除原来DB :use testBackUp ,db.dropDatabase();
4.停止mongoDB,修改数据存储目录(如果不是Root操作,请先创建该目录及Log文件,再授权)
dbpath=/myApplication/mongoDBData/mongoData
logpath=/myApplication/mongoDBData/mongoLog/mongodb.log
logappend = true
fork=true
bind_ip = 192.168.123.133
port=27017
5.启动mongoDB,注意要带配置文件 ,要不然会使用默认的,使用该命令:./mongod -f mongodb.conf
生产环境执行后台启动,要不然Xshell一关闭,服务就停了:nohup sudo ./mongod -f /etc/mongod.conf >> /datadrive2/mongodbLog/output.log 2>&1 &
6.执行还原命令:./mongorestore -h 192.168.123.133 -d newNameBackUp /myApplication/mongoDBData/testBackUp
PS:不要用kill -9 PID来杀死MondoDB进程,这样可能会导致MongoDB的数据损坏,使用以下命令停止:
> use admin;
switched to db admin
> db.shutdownServer();
server should be down...
以下为另一种起动及停止方式。
sudo service mongod start
sudo service mongod stop
其他更详细操作:https://www.jb51.net/article/40285.htm
#写法1
mongorestore --collection collection --db database filePath
#写法2(推荐写法)
mongorestore --nsInclude database.collections filePath