Mongodb备份和;恢复

时间:2014-06-20 07:40:11

标签: mongodb

我有一个拥有150GB数据的数据库。我使用MongoDump和Mongorestore方法进行备份和恢复。

My Production服务器运行Mongo 2.2,测试服务器运行2.6.1

当我从生产服务器Mongo2.2进行备份时,需要很长时间才能完成150GB数据的备份。恢复需要6-8个小时。它没有完成没有错误,有时自动删除恢复,我们需要再次运行恢复或恢复错过的集合。

是否有一种采用备份和恢复方法的最佳方法,我们可以节省时间并在没有错误的情况下运行它?

此致 仙人

3 个答案:

答案 0 :(得分:0)

您可以使用本地备份和还原功能的几个选项,这些选项在http://docs.mongodb.org/manual/administration/backup/的文档中列出得非常好。

总而言之,随着您的数据增长,mongodump / mongorestore变得不太适合备份/恢复目的,您应该开始考虑其他选项,如:

  • 基于文件系统的快照或LVM快照(因为您在EC2中,这应该是相当直接的)
  • 彩信备份

答案 1 :(得分:0)

最好的方法是在Linux系统上使用LVM进行备份和还原

制作快照:

lvcreate --size 100M --snapshot --name mdb-snap01 /dev/vg0/mongodb

存档快照

umount /dev/vg0/mdb-snap01
dd if=/dev/vg0/mdb-snap01 | gzip > mdb-snap01.gz

恢复快照

lvcreate --size 1G --name mdb-new vg0
gzip -d -c mdb-snap01.gz | dd of=/dev/vg0/mdb-new
mount /dev/vg0/mdb-new /srv/mongodb

直接从快照还原

umount /dev/vg0/mdb-snap01
lvcreate --size 1G --name mdb-new vg0
dd if=/dev/vg0/mdb-snap01 of=/dev/vg0/mdb-new
mount /dev/vg0/mdb-new /srv/mongodb

远程备份存储:

umount /dev/vg0/mdb-snap01
dd if=/dev/vg0/mdb-snap01 | ssh username@example.com gzip > /opt/backup/mdb-snap01.gz
lvcreate --size 1G --name mdb-new vg0
ssh username@example.com gzip -d -c /opt/backup/mdb-snap01.gz | dd of=/dev/vg0/mdb-new
mount /dev/vg0/mdb-new /srv/mongodb

答案 2 :(得分:-1)

您是否尝试过基于文件系统的快照或彩信? MMS非常强大,如果您有数据安全问题,它也可以在本地使用。

您能否提供有关您的环境的更多详细信息 - 文件系统,内核,SSD /文件管理器?

谢谢, 巴努•