Я прочитал кучу статей о создании последовательных резервных копий mySQL, включая В чем смысл согласованного набора данных? (MySQL), но я все еще не думаю, что знаю достаточно, чтобы ответить на этот вопрос с уверенностью. Первоначально я разместил этот вопрос в stackoverflow, но несколько высокопоставленных участников посоветовали мне это место лучше. Так что я в основном копирую вопрос сюда и удаляю его оттуда. Надеюсь, это приемлемая практика - я попросил помощи, как поднять вопрос, но не получил.
Запуск MySQL 5.5 с использованием только таблиц InnoDB с включенной функцией "файл на таблицу" при поддержке многопользовательского веб-сайта, размещенного на Amazon EC2 под управлением Amazon Linux.
Судя по тому, что мне удалось найти здесь и на других сайтах Stack Exchange, похоже, можно скопировать весь data
дерево, чтобы сделать действительную резервную копию после выключения сервера.
Что я сейчас делаю для резервного копирования:
В своем ответе на https://stackoverflow.com/questions/9165118/lvm-mysql-backup/9165604#9165604Билл Карвин отметил, что моментальные снимки lvm могут серьезно ухудшить производительность ввода-вывода. Но я считаю, что, поскольку моментальный снимок lvm активен только в течение короткого времени, необходимого для завершения rsnapshot (который использует rsync), производительность не должна серьезно снижаться.
Итак, мой вопрос в том, действительно ли мне нужно останавливать серверы при создании снимка lvm. Думаю, я где-то читал, что, хотя моментальный снимок «мгновенного во времени» может поймать таблицы InnoDB с незавершенными транзакциями, если это произойдет, mySQL будет последовательно обрабатывать их при повторном запуске. Поэтому я думаю, что остановка сервера может быть излишней, даже если она останавливается только на очень короткое время, пока делается снимок lvm. (Сначала я останавливаю apache, поэтому запросы не могут поступать без запущенной базы данных).
Я обязательно проверю совет Билла по поводу http://www.percona.com/software/percona-xtrabackup. И, кажется, здесь его много цитируют. Хорошо ли он работает с MySQL 5.5, или мне нужно установить Percona Server? А пока я хотел бы знать, могу ли я сделать постепенное улучшение того, что я делаю, - или то, что я делаю, уже сломано!
TL; DR: с помощью снимков LVM останавливать ваши службы не нужно. +1 за XtraBackup.
Останавливать службы не требуется. Моментальный снимок LVM эквивалентен отключению питания, что означает, что он согласован, но такой же, как сбой. При запуске службы из одной из ваших резервных копий она должна будет выполнить аварийное восстановление. Время, необходимое для этого, зависит от размера файлов журнала InnoDB, но может составлять несколько минут. Как только восстановление после сбоя завершится, ваша служба снова будет работать в обычном режиме.
Если вы отключите службы до создания моментального снимка, восстановление начнется быстрее, но за счет некоторого времени простоя при каждом запуске резервного копирования. Также стоит учитывать, что каждый раз, когда вы останавливаете службы, вы теряете весь теплый буферный пул, поэтому вы также столкнетесь с некоторым снижением производительности из-за необходимости снова считывать данные в память.
XtraBackup разработан для работы с Oracle MySQL, а также с Percona Server. Это хороший вариант, хотя, как и во всех остальных случаях, резервное копирование, тестирование, тестирование и повторное тестирование, чтобы убедиться, что он работает. перед вы обнаружите, что вам это нужно.