Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Выполнить Backup базы MySQL простым копированием файлов можно в том случае, если остановить сервис MySQL. Это обусловлено тем, что база в любой момент может быть модифицирована. Существует кэш и копирование может совпасть с моментом записи в файл (модификацией файла). В этом случае проблемы возникнут при попытке восстановления базы из Backup.
Варианты действий:
Остановить базу, скопировать файлы, запустить базу. Время остановки базы зависит от размера базы данных.
Заблокировать данные на изменения, очистить кэш, выполнить cнимок файловой системы, если используется журналируемая файловая система. Разблокировать базу данных. В фоновом режиме выполнить копирование файлов. Преимущества данного способа: небольшое время простоя базы; база не отключается и доступна на чтение. Недостатки: повышается нагрузка на файловую систему на момент Backup.
Выполнить backup базы через дамп. Преимущества данного способа: утилитой nice можно понизить приоритет и получать данные постепенно. Недостатки: выполняется длительное время; не подходит для инкрементных дампов, соответственно размер backup будет большой.
Запустить инкрементный backup базы. Преимущества данного способа: сохраняются только изменения от момента последнего сохранения, соответственно быстро из без остановки системы. Недостатки: перед сохранением нужно сбросить кэш в файлы.
Примечание. В данном подразделе указаны команды, которые выполняются из командной консоли управления операционной системы Linux (shell) непосредственно хоста, на котором установлена система CSS-17.
Описание варианта №3
1. Выполнить копию БД
mysqldump --verbose --single-transaction --quote-names --complete-insert --extended-insert --routines --events --triggers -u<LOGIN> -P<PORT> -h<HOST> -p<PASS> <DBNAME> > dump.sql
где
<HOST> - хост, на котором размещен сервер MySQL;<LOGIN> - логин к MySQL;<PORT> - порт, на котором работает сервер; <PASS> - пароль;<DBNAME> - имя базы.
После выполнения данной команды в файле dump.sql будет копия MySQL-базы с именем "DBNAME".Целесообразно имя файла dump.sql формировать с учетом даты и времени суток.
2. Восстановление
mysql -u<LOGIN> -P<PORT> -h<HOST> -p<PASS> <DBNAME> < dump.sql
Описание процесса можно просмотреть по следующим ссылкам: http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html; http://www.codenet.ru/db/mysql/MySql-Backup.php;http://habrahabr.ru/post/137380/;http://www.linuxjournal.su/?p=1064.
Описание варианта №4
Метод сохранения Backup основан на базе механизма бинарных логов MySQL. Бинарные логи содержат полную историю изменений базы данных. Для работы инкрементного Backup необходимо, чтобы бинарные логи были включены для требуемой базы данных.
Примечание. Описание настройки бинарных инкрементных логов приведено по ссылке: 24 Схема развертывания MySQL master-master replication с использованием keepalive
Процесс состоит из двух фаз:
Создание первоначального полного снимка базы, выполняется аналогично варианту №3. В параметрах "mysqldump" указывается ключ --flush-logs, который приводит к принудительному сохранению бинарных логов, ротации файлов бинарных логов, чтобы при последующем их сохранении было известно с какого файла начинать синхронизацию. mysqldump -uLOGIN -PPORT -hHOST -pPASS --flush-logs DBNAME > dump.sqlТакой снимок базы выполняется изначально при запуске всего механизма Backup данных, а также рекомендуется повторно выполнять полные снимки базы один раз в месяц.
Периодический Backup бинарных логов от момента предыдущего Backup. Эта операция выполняется простым копированием файлов (обычно расположены /var/log/mysql) с момента предыдущего инкрементного или полного Backup по текущий момент, за исключением последнего файла, в который записываются текущие изменения. Такой периодический Backup рекомендуется выполнять один раз в неделю.
Восстановление Backup из инкрементных логов происходит следующим образом:
Восстанавливаем базы из последнего полного Backup.
Накатывание инкрементных обновлений. Последовательно применяются к базе бинарные логи: mysqlbinlog binlog_files | mysql -uLOGIN -pPASS.

  • Нет меток