mongodb数据库的备份与恢复

mongodb使用mongodump和mongorestore来进行数据库的备份与恢复,它们是mongodb本身所提供的工具。你可以在mongodb安装目录下的server/{version}/bin目录中找到这两个工具。不过我们一般都在cmd命令行下使用它们,下面就来具体说说他俩的用法吧。

一、mongodump的使用

这个工具能够备份整个数据库、单个集合或者是通过query选项备份集合内筛选出的一部分数据。

当你运行mongodump命令且不指定其它选项时,默认会备份本机(localhost),端口号为27017的所有数据库到当前目录下的dump文件夹中。

你可以使用 --host 和 --port 参数来连接指定主机和端口的mongodb实例,如下所示:

mongodump  --host www.test.com --port 27017

另外,如果需要认证的话,那么需要使用 --username 和 --password 这两个参数,完整示例如下所示:

mongodump  --host www.test.com --port 27017 --username test --password test123

你也可以使用 --out 参数来指定不同输出目录,如下所示:

mongodump --out ./test

使用 --db 和  --collection参数 来备份某个数据库中的单个集合,如下所示:

mongodump --collection myCollection --db test

使用 --collection,并且指定 --query 参数,这样就可以导出集合内被筛选出来的数据,如下所示:

mongodump --db test --collection records --query '{ "a": { "$gte": 3 } }'

二、mongorestore的使用

默认情况下mongorestore会把数据恢复到本机(localhost),端口号为27017的mongodb实例上。如果你想恢复数据到不同的主机或者端口号中,可以使用 --host 和 --port 参数,如下所示:

mongorestore --host www.test.com --port 27017 --username test --password test123 --db test ./test

另外,mongodb还提供了mongoexport和mongoimport这两个工具,主要针对单个集合的导入和导出,备份文件类型为json或csv。有兴趣的同学可自行查找用法,这里就不再展开。

发表评论