Есть ли что-то, о чем мне нужно знать, чтобы установить MySQL на инстансе Amazon EC2 (например, t3.medium) при выполнении резервного копирования моментального снимка инстанса EC2?
Как правильно установить MySQL на EC2 и регулярное резервное копирование базы данных MySQL и EC2 Backup?
Я знаю, что RDS - это вариант, но мне нравится избегать этого, чтобы снизить ежемесячные расходы.
Изменить: Linux centos и не требует настройки репликации. Это веб-сервер с php и apache.
Вы должны прочитать о согласованность сбоев и согласованность приложений снимки.
Снимки EBS устойчивы к сбоям. Том может быть несовместимым, если экземпляр EC2 выполняет запись в том, но в целом моментальные снимки обычно будут согласованными, и вы, как правило, сможете без проблем восстановить том / базу данных из моментального снимка. Однако «обычно» - это то, что вам нужно протестировать и проверить в соответствии с вашими требованиями - если это важная база данных, которая часто изменяется, вам нужно быть более осторожным.
Мой подход состоит в том, чтобы ежедневно запускать mysqldump с помощью задания cron, которое я создаю резервную копию на S3 с помощью того же задания cron, а также фиксируется как часть моих снимков. Это дает мне уверенность, что я смогу восстановить свою базу данных, даже если моментальный снимок EBS не на 100% согласован.
Установите mysql как обычно, по этому поводу есть сотни руководств и множество документации, и это зависит от вашей ОС. У меня есть mysql на t2.nano вместе с Nginx / PHP, с отключенной схемой производительности MySQL, он хорошо работает, учитывая низкую нагрузку на сервер. У меня есть 512 МБ подкачки в дополнение к 512 МБ ОЗУ, только небольшая часть этой подкачки когда-либо используется.
Я бы не стал делать снимки для резервного копирования MySQL. Если вы просто сделаете снимок из действующего экземпляра MySQL, скорее всего, он будет поврежден. Однако есть обходной путь - перед созданием снимка вы можете заблокировать таблицы с помощью FLUSH TABLES WITH READ LOCK
. В этом случае MySQL все равно придется выполнять восстановление после сбоя (кстати, мы говорим о InnoDB, верно?), Но после этого база данных будет согласованной. mylvmbackup использует этот метод.
Percona Xtrabackup и mysqldump - подходящие инструменты для создания резервных копий из MySQL. У них обоих есть свои плюсы и минусы, так что вам решать, какой выбрать. На мой взгляд, Xtrabackup - более универсальный инструмент, так как он работает с большими базами данных, где mysqldump показывает недопустимо долгое время восстановления.
Могу порекомендовать использовать Резервное копирование TwinDB (отказ от ответственности, я автор), который использует Xtrabackup plus, реализует политику хранения, планирование, потоковую передачу на S3, шифрование, проверку резервных копий - все функции, которые отсутствуют в Xtrabackup, но представляют собой правильное решение для резервного копирования. Это также бесплатно и с открытым исходным кодом.