Резервное копирование и восстановление базы данных Mongo

#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