mongodb 备份mysql_mongodb备份与恢复

系统环境

服务器系统:Windows Server2012 R2

MongoDB:v3.4.4

可以通过命令:mongo -version 查看版本信息

431bc53ed97095cabd811a4ab16ee38c.png

场景:备份数据库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 Files\MongoDB\Server\3.4\bin\mongod.exe

39561f491ee733bcb9d75f491bca5896.png

先在服务器上面创建文件目录:E:\data\home\momgodump

然后以管理员身份打开CMD,然后跳转到Mongodb所在路径,执行如下命令:

mongodump -h 192.168.1.18:27017 -d smp_maint_2 -o E:\data\home\momgodump

运行结果如下:

65cd452eccde65c8e55f24f6cf202f2d.png

备份完成之后,我们再看下备份目录下面自动创建了一个和数据库名称一样的目录,目录下面有如图所示备份文件

4bb9992889ef7f22af789d58f3b2ccfa.png

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:\data\home\momgodump\smp_maint_2

运行结果如下所示:

4bc95577dfe49f09f84df0ac7415949a.png

1af0ad730aebe5d19587b35564820267.png

还原成功!

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值