我有一个拥有150GB数据的数据库。我使用MongoDump和Mongorestore方法进行备份和恢复。
My Production服务器运行Mongo 2.2,测试服务器运行2.6.1
当我从生产服务器Mongo2.2进行备份时,需要很长时间才能完成150GB数据的备份。恢复需要6-8个小时。它没有完成没有错误,有时自动删除恢复,我们需要再次运行恢复或恢复错过的集合。
是否有一种采用备份和恢复方法的最佳方法,我们可以节省时间并在没有错误的情况下运行它?
此致 仙人
答案 0 :(得分:0)
您可以使用本地备份和还原功能的几个选项,这些选项在http://docs.mongodb.org/manual/administration/backup/的文档中列出得非常好。
总而言之,随着您的数据增长,mongodump / mongorestore变得不太适合备份/恢复目的,您应该开始考虑其他选项,如:
答案 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 /文件管理器?
谢谢, 巴努•