Стратегия резервного копирования Mongodb на AWS EC2

Стратегия резервного копирования Mongodb на AWS EC2

Я запускаю Mongodb на экземпляре AWS EC2. Данные/журнал и журнал хранятся в отдельном томе, отформатированном как xfs. В настоящее время мы останавливаем экземпляр mongodb, чтобы сделать снимок, но читаем это: https://docs.mongodb.com/ecosystem/tutorial/backup-and-restore-mongodb-on-amazon-ec2/ судя по всему, нет необходимости останавливать службу во время снимка, так как журнал включен. Я прав? Могу ли я создать согласованный снимок, даже если служба запущена?

решение1

В общем случае не доверяйте ни одной процедуре резервного копирования, пока не убедитесь в целостности восстановленных данных с долгосрочного носителя.


У вас уже есть возможность сделать резервную копию уровня системы хранения в режиме онлайн. В этом случае с томами EBS или Linux LVM. Проблема заключается в том, чтобы привести базу данных в согласованное состояние.

Онлайн-резервное копирование возможно с журналом или без него. В любом случае, способ mongo приостановить запись в базу данных — fsync и lock, как описано в этом руководстве.

Без журнала сложно определить, какие данные сохраняются на диске, а какие буферизированы и еще не зафиксированы. fsync и lock устанавливают момент времени и останавливают любые текущие записи до тех пор, пока не будет выполнено резервное копирование.

Блокировка также необходима при наличии нескольких дисков, где (в этой системе хранения) моментальные снимки не согласованы друг с другом. Приостановка записи на время резервного копирования означает, что диск /dev/sdfне будет находиться в немного иной точке времени по сравнению с /dev/sdg.

Монго утверждает, что если у вас есть толькоодинокийдиск ииметьжурнал, вам не нужно fsync и блокировка. Предположительно, снимок EBS является достаточно хорошим моментом времени, устойчивым к сбоям, и восстановление журнала вперед может исправить любые незавершенные записи.

Связанный контент