Лучшая практика? Потребительские данные в MySQL на Amazon EBS (Elastic block store)
Это потребительское приложение, поэтому я позабочусь о затратах на хранение - я не хочу, чтобы лежали 5х копий данных. Приложение очень хорошо выглядит, поэтому я могу использовать MySQL и не иметь проблем с масштабированием.
У Amazon EBS есть хорошая возможность резервного копирования с базовым уровнем + снимок, которая использует S3. Это должно иметь небольшой след (с точки зрения стоимости хранения).
НО: история с magolia.com пугает меня до чертиков: практически безупречное резервное копирование на уровне блоков поврежденной БД или файловой системы.
Есть ли что-нибудь такое же эффективное для хранения, как EBS на уровне MySQL?
4 ответа
Нет никакой замены холодной резервной копии вне сайта.
Любая резервная копия, которая всегда подключена к сети и работает с живыми серверами, особенно с одним и тем же центром обработки данных, рискует быть скомпрометированной злоумышленниками или сбоем по какой-либо причине, которая убивает оригинал (пожар, наводнение и т. Д.). По этим двум причинам вам, вероятно, понадобится оперативное резервное копирование в режиме реального времени, если вы по ошибке сделали что-то непонятное, и менее частое холодное стороннее резервное копирование. Прелесть холодных удаленных резервных копий заключается в том, что они максимально изолированы от любого возможного сценария (спасите гнусного человека, чтобы уничтожить все ваши данные любой ценой), и хотя вы можете потерять данные за несколько дней / недель, это лучше, чем потерять все это.
Что касается резервного копирования неверных данных, любая система резервного копирования может автоматически создавать резервные копии поврежденных данных, для этого и нужны регулярные тесты.
Если вы можете получить более высокую ставку на хранилище, чем EBS с другого хоста (не сложно), вы можете настроить этот хост в качестве ведомого MySQL и создать свой собственный диск LVM для MySQL, позволяющий регулярно выполнять снимки LVM. Убедитесь, что независимо от того, какой механизм моментального снимка вы используете, вы обязательно очистите таблицы и прочитайте их блокировки, чтобы сохранить целостность данных. См. http://lists.mysql.com/replication/1741 для получения дополнительной информации. Если вы используете ведомое устройство только для чтения, вы, вероятно, можете просто запустить остановленное ведомое устройство и выполнить сброс, хотя блокировка чтения не повредит.
В качестве альтернативы, вы можете просто полностью остановить свое ведомое устройство чтения, выключив SQL-сервер, а затем использовать rdiff-backup, который является инкрементным резервным копированием, только резервное копирование изменений, для копирования ваших файлов MySQL.
Реальный ответ, однако, заключается в том, что вам, вероятно, не нужно все это. Вероятно, вы можете время от времени обходиться без автоматического запуска mysqldump, распаковывая его и загружая его так, чтобы S3 загружал копии на свой домашний компьютер для резервного копирования.
Какой размер базы данных мы смотрим здесь? Лично я использую mysqlhotcopy для таблиц MyISAM и храню несколько копий. Но без лишних копий, я полагаю, вы могли бы вести двоичные журналы. В двоичных журналах репликации все запросы выполняются с определенной позиции. Возможно, вы могли бы создать систему, в которой хранится копия фактической базы данных, а также двоичные журналы из последней резервной копии для инкрементных резервных копий.
Проверьте поставщика облачного резервного копирования с dedupe - Asigra является лидером в этой области. Вы хотите, чтобы ваши резервные данные находились на разных шпинделях и в электросетях, чем ваши первичные данные, если это возможно.
Дедупликация должна помочь сделать ее доступной за счет сокращения потребления полосы пропускания.
Вам, вероятно, следует установить регулярные логические резервные копии, что для mysql, вероятно, означает настройку выделенного ведомого устройства, из которого будет выполняться mysqldumps. Они также должны регулярно перезагружаться и тестироваться.
Если вы действительно обеспокоены, возможно, стоит заглянуть в базу данных, которая выполнит некоторый уровень контрольной суммы данных и / или файлов журнала. Кроме того, файловая система, которая выполняет контрольные суммы данных, также будет полезна для предотвращения повреждения уровня диска.