windows下面mongodb数据库备份和恢复
1、mongodump(备份)及mongorestore(还原)
→说明:
mongodump是一个用于导出二进制数据库内容的实用工具,它导出的bson文档中只会包含着集合文档等信息,不包括索引信息(索引信息会单独导出),所以还原后,索引必须重建(这个不用担心,使用mongorestore会自动重建mongodump生成的索引信息)。3.4版本中添加了对只读视图的支持。
→参数(以下仅列举常用参数,更多请参考help,下同):
命令 全称 默认值 参考释义
--help 查看mongodump命令的使用帮助
--version 返回mongodump的版本号
-h --host <hostname><:port> localhost:27017 指定mongod要连接的主机名及端口号
--port <port> 27017 指定MongoDB实例监听客户连接的TCP端口号
-u --username <username> 指定用于向使用认证的MongoDB数据库认证的用户名,与--password和
--authenticationDatabase结合使用
-p --password <password> 指定用于向使用认证的MongoDB数据库认证的密码。与--username和 --
authenticationDatabase选项结合使用。
-d --db <database> 指定要备份的数据库。如果不指定,mongodump会将此实例中的所有数据库备份。
-c --collection <collection> 指定要备份的集合。如果不指定,则会将指定数据库或实例中的所有集合备份。
--gzip 3.2版本+,压缩输出,如果mongodump指定导出到目录,则该选项会将每个文件都压缩,
并添加.gz后缀;
如果mongodump指定导出到文档或标准输出流,则该选项会压缩到文档或输出流中
-o --out <path> 指定导出数据的目录路径,如不指定,则mongodump默认将文件输出到dump所在的工作目录中。
该选项不能和--archive一起使用
→举个栗子:
我可以将数据备份到D:\offer\data\dump目录下面,首先创建这个路径。然后进入到mongodb的bin目录下面
我的是:
D:\offer\mongod\bin
备份脚本是:
mongodump -h 127.0.0.1:27017 -d test -o D:\offer\data\dump
恢复脚本是:
mongorestore -h 127.0.0.1:27017 -d test --directoryperdb D:\offer\data\dump\test
备份脚本是:
mongodump -h 127.0.0.1:27017 -d test -o D:\offer\data\dump
恢复脚本是:
mongorestore -h 127.0.0.1:27017 -d test --directoryperdb D:\offer\data\dump\test
linux下面mongodb数据库备份和恢复
linux下面我们可以创建一个自动备份脚本,可以设置定时任务,也可以手动备份。我是手动备份的。
首先创建一个sh命令,我是放在home下面的
vim /home/mongoBeiFen.sh
输入如下内容:
#!/bin/bash
shijie=`date +%Y%m%d%H`
backmongodbFile=mongodb$shijie.tar.gz
cd /home/mongoDbback/
/usr/local/mongo/bin/mongodump -h 127.0.0.1 --port 27017 -u mongo -p 123456 -d my_mongodb -o my_mongodb_dump/
tar czf $backmongodbFile my_mongodb_dump/
rm my_mongodb_dump -rf
解释:
存放备份的文件夹是/home/mongoDbback/
-u是数据库名用户名 -p是密码 -d是数据库名 具体和window差不多,大家可以看下上面windows的解释。
备份的时候只要运行一下
./mongoBeiFen.sh
就可以了。
数据库恢复:
/usr/local/mongo/bin/mongorestore -d my_mongodb my_mongodb_dump/my_mongodb/* 指向每个文件
/usr/local/mongo/bin/mongorestore -h 127.0.0.1 --port 27017 -- drop --directoryperdb my_mongodb_dump/my_mongodb 指向一个目录
有问题的话可以尝试window的写法:
/usr/local/mongo/bin/mongorestore -h 127.0.0.1:27017 -d test --drop --directoryperdb my_mongodb_dump/my_mongodb
作者:程猿先生
链接:https://www.jianshu.com/p/186a99fb8a5e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
来源:CSDN
作者:hi_zf
链接:https://blog.csdn.net/hi_zf/article/details/104801994