#mongodb
#mongodb
Вопрос:
У меня есть база данных со 150 ГБ данных. Я использую MongoDump и Mongorestore для резервного копирования и восстановления.
Мой рабочий сервер работает с Mongo 2.2, а тестовый сервер — с 2.6.1
Когда я делаю резервную копию с рабочего сервера Mongo2.2, для завершения резервного копирования 150 ГБ данных требуется много времени. И восстановление занимает 6-8 часов. это не завершено без ошибок, иногда восстановление автоматически отбрасывается, и нам нужно снова запустить восстановление или восстановить пропущенную коллекцию.
есть ли лучший способ использовать метод резервного копирования и восстановления, где мы можем сэкономить время и запустить его без ошибок?
С уважением, Риши
Комментарии:
1. Вы должны спросить на dba.stackexchange.com
Ответ №1:
Вы можете использовать несколько опций для встроенного резервного копирования и восстановления, и они очень хорошо перечислены в документации по адресу http://docs.mongodb.org/manual/administration/backup /.
Подводя итог, по мере роста ваших данных mongodump / mongorestore становится менее идеальным для резервного копирования / восстановления, и вам следует начать искать другие варианты, такие как:
- Моментальные снимки на основе файловой системы или снимки LVM (поскольку вы находитесь в EC2, это должно быть довольно просто)
- Резервное копирование MMS
Ответ №2:
Лучшим методом является резервное копирование и восстановление с использованием LVM в системе Linux.
Создание моментального снимка:
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