使用MongoDB进行数据备份/恢复
使用Point-in-Time模式(暂时停止mongod)进行备份的方法。
在将MongoDB数据从一个服务器移动到另一个服务器时,我进行了一些调查。
MongoDB版本:2.4系列。
用mongodump进行备份
查找mongod.conf的路径。
mongod.conf路径可以通过–config或-f选项传递。
CentOS 六点零版本
$ ps aux | grep mongod
... /usr/bin/mongod -f /etc/mongod.conf
苹果操作系统X
$ ps aux | grep mongod
... /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf
找出MongoDB的dbpath(存放数据库实体的路径)。
CentOS 6.x可以说是CentOS的6.x版本。
$ grep dbpath [mongod.conf path]
dbpath=/var/lib/mongo
苹果操作系统 X
$ grep dbpath [mongod.conf path]
dbpath = /usr/local/var/mongodb
停止mongod服务
$ mongo
> use admin
> db.shutdownServer()
> quit()
为了存储备份数据,创建一个空目录。
$ mkdir ~/mongo_dump
备份数据
# mongodump -v --dbpath /var/lib/mongo --out ~/mongo_dump
-v选项 verbose
–dbpath 指定了mongod.conf中找到的dbpath
–out 指定了备份目标目录
因为从dbpath中读取,所以需要root权限或类似权限。
使用 mongorestore 进行还原
事先启动mongod服务。
CentOS 6.x 系统
# service mongod start
苹果操作系统X
# launchctl start homebrew.mxcl.mongodb
恢复数据
# mongorestore -v --db [database_name] ~/mongo_dump/[database_name]
-v 详细模式选项
–db 指定恢复的目标数据库
指定备份数据的目录/数据库
由于需要写入到dbpath,所以需要root权限之类的权限。
在恢复过程中还会进行索引构建,所以比备份花费的时间更长。
参考网页
以下是MongoDB官方文档中关于备份和恢复的链接:
http://docs.mongodb.org/manual/core/backups/
http://docs.mongodb.org/manual/reference/program/mongodump/
http://docs.mongodb.org/manual/reference/program/mongorestore/