После установки mysql на freebsd и переноса основной базы данных программы управления клубом туда, я, будучи из тех админов, что "уже делают бэкапы", озаботился резервным копированием этой базы данных.
Естественно, что в первую очередь, на что упал мой взгляд - это скрипт, идущий в комплекте с MySQL - mysqldump. Внимательно почитав его мануал, и ознакомившись с опытом его применения в производственных средах, опубликованным в различных блогах и сайтах, я понял:
- использование этого скрипта является довольно ресурсоемкой процедурой
- использование этого скрипта с БД, хранящей данные в innodb, не гарантирует благополучного восстановления данных без применения нетривиального шаманства
- использование этого скрипта требует остановки демона MySQL
Исходя из вышеназванных причин, с учетом крайней ограниченности в ресурсах и, вероятно, в лени - этот скрипт для меня неприменим. Следовательно, пришлось снова обратиться к мировому разуму, а если быть точнее, к верному поисковику google с переформулированным запросом.
Итак, вот выход, придуманный не мной, а светлыми головами из Percona - XtraBackup.
Вся дальнейшая информация, точнее та часть ее, что я скопировал - является просто копипастом записи в блоге Highload Web.
XtraBackup - резервное копирование для innoDB
системах с высокими нагрузками особое внимание следует уделять резервному копированию (бекапам) данных. Зачастую самая важная часть данных находиться в СУБД. Проблема заключается в том, что копирование данных нужно проводить незаметным для работающей системы образом. Блокировка данных на момент создания бекапа тут не работает, т.к. время блокирования будет неприемлемым.
Одним из популярных решений является репликация, которая обеспечивает высокую степень надежности и почти нулевую потерю данных при сбое основного сервера. Но репликация требует аппаратных затрат, к тому же резервный сервер должен не уступать по характеристикам основному серверу, иначе от репликации не будет толку.
Другой подход резервного копирования - это использование специальных утилит, которые позволяют делать снимки состояния СУБД на жесткий диск, и восстанавливать состояние обратно по такому снимку. На этом остановимся подробнее.
Поскольку MySQL является одним из самых популярных решений в Web'е сегодня, рассмотрим инструменты для бекапов для этой СУБД.
XtraBackup - это утилита от percona labs, предназначенная для горячих бекапов таблиц InnoDB и XtraDB.
Советую всем ознакомиться - весьма-весьма полезно... Однако, есть версия только для 64 битных систем