Хотя при запуске моментального снимка рекомендуется заблокировать базу данных и заморозить файловую систему, фактический вызов API для создания моментального снимка занимает доли секунды, поэтому база данных и файловая система не блокируются / не блокируютсяна долго.
Тем не менее, есть пара других соображений, которые вы не упомянули:
Когда вы пытаетесь создать блокировку для базы данных, может потребоватьсядождитесь завершения других операторов, прежде чем будет предоставлена блокировка.В течение этого времени ваша ожидающая блокировка может еще больше подождать, пока вы не получите и не снимете блокировку.Это может вызвать прерывания в потоке операторов в производственной базе данных.
После того, как вы инициируете создание снимка, ваше приложение / база данных могут свободно использовать файловую систему на томе,но если у вас есть много записей, вы можете испытать высокий iowait, иногда достаточно, чтобы создать заметное замедление вашего приложения.Причина этого заключается в том, что фоновый процесс моментального снимка должен скопировать блок на S3, прежде чем он разрешит запись в этот блок на активном томе.
Я решаю первую проблему, запрашиваяблокировка и тайм-аут, если он не предоставляется быстро.Затем я немного подожду и продолжаю попытки, пока не получу блокировку.Подходящие тайм-ауты и задержка повторных попыток могут различаться для разных нагрузок на базу данных.
Я решаю вторую проблему, выполняя частые, согласованные снимки на ведомом, а не на главном, как вы предложили.Я все еще рекомендую делать случайные моментальные снимки с мастером просто для повышения его внутренней прочности (глубокое свойство EBS), но эти моментальные снимки не нужно выполнять с блокировкой или замораживанием, поскольку вы не собираетесь использовать их для резервного копирования.
Я также рекомендую использовать файловую систему, которая поддерживает сброс и замораживание (XFS).В противном случае вы создаете моментальный снимок заблокированных таблиц в MySQL, которые еще могут не иметь всех своих блоков на томе EBS, или другие части файловой системы могут быть изменены и несовместимы в моментальном снимке.
Если вам интересноЯ опубликовал программное обеспечение с открытым исходным кодом, которое использует лучшие рекомендации, которые я собрал, в отношении создания согласованных снимков EBS с MySQL и XFS (оба необязательных).
http://alestic.com/2009/09/ec2-consistent-snapshot
Чтобы ответить на ваш последний вопрос, блокировка таблиц в мастере не нарушит репликацию.В моем программном обеспечении для создания моментальных снимков я также очищаю таблицы с помощью блокировки чтения, чтобы убедиться, что на диске выполняется моментальный снимок, и добавляю ключевое слово «LOCAL», чтобы сброс не реплицировался ни на какие потенциальные ведомые устройства.