Запрос ЦеныЗапрос Цены
Онлайн ЧатОнлайн Чат
Зона КлиентовЗона Клиентов
КонтактыКонтакты
Скрыть
Live Support
Sales department
Technical Support
Резервное копирование MySQL без простоя (InnoDB/InnoBackupEx)

Широкое распространение баз данных MySQL приводит к применению их в разнообразных проектах, включая те, которые требуют непрерывной работы и минимального времени простоя. Стандартные инструменты, такие как mysqldump не удобны для применения в больших базах данных, которые могут достичь десятков гигабайтов. Если вы всё ещё можете экспортировать информацию за приемлемое время в несколько часов, операция по восстановлению может занять десятки часов. Также, применение mysqldump для резервного копирования приводит к блокированию таблиц (из-за чего во время резервного копирования происходит простой) и может привести к противоречивости данных в резервной копии. Противоречивость данных может случаться, когда во время копирования происходят транзакции, связывающие уже скопированные таблицы с теми, которые ещё не были скопированы.

Короткое описание Percona XtraBackup
- «Инструмент innobackupex является скриптом на Perl, который работает в качестве враппера для программы на С xtrabackup. Это патченная версия innobackup Perl скрипта, которую предоставляет Oracle с инструментом InnoDB Hot Backup. Он предоставляет больше функционала, интегрируя xtrabackup и другие функции, такие как копирование файлов и потоковую передачу, а также добавляет некоторые удобства. Инструмент позволяет создавать резервные копии на определённый момент таблиц InnoDB/XtraDB вместе с определением схем, таблиц MyISAM и других частей сервера”[1].
Основные функциональные возможности Percona XtraBackup связаны с большими улучшениями в механизме резервного копирования MySQL для информации на движке InnoDB. Информация в Archive/MyISAM таблицах также копируется, но при помощи обычных механизмов блокировки и копирования таблиц.
Ниже кратко описаны некоторые сценарии применения и функциональные возможности XtraBackup.

1. Изначальное копирование базы данных
Для того чтобы сделать полную резервную копию, используйте скрипт с параметрами, необходимыми для соединения с сервером и только один аргумент; путь к директории, где будет храниться резервная копия: innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

Проверьте последнюю линию вывода для сообщения подтверждения:
innobackupex: Backup created in directory '/path/to/BACKUP-DIR/2011-12-25_00-00-09'
innobackupex: MySQL binlog position: filename 'mysql-bin.000003', position 1946 111225 00:00:53 innobackupex: completed OK!

Например, 60GB база данных копируется за 19 минут без прерывания службы (так как в таблицах MyISAM/Archive не существует критической информации).
После компрессии (tar -cz), архив занимает 14GB дискового пространства. Также, следует заметить, что сжатый архив XtraBackup занимает в два раза меньше места по сравнению со сжатой резервной копией, созданной инструментом mysqldump.

Копия базы данных, созданная при помощи XtraBackup может применяться для последующих инкрементных резервных копий, или может быть подготовлена как полностью рабочая директория MySQL, достаточная для того, чтобы запустить экземпляр MySQL (для доступа к скопированной информации или для того, чтобы сделать изначальную базу данных для репликации).

2. Инкрементная копия
Проведение инкрементного резервного копирования:
$ innobackupex --incremental /data/backups --incremental-basedir=BASEDIR, где BASEDIR является директорией, содержащей полную или инкрементную резервную копию и «/data/backups» это директория для хранения новосозданной инкрементной резервной копии.
Инкрементные резервные копии содержат все изменения, сделанные в базе данных с последней даты резервной копии до текущего времени.
Для дальнейшей информации об инкрементных резервных копиях прочитайте документ [2].

3. Применение инкрементных копий к изначальной резервной копии (резервная копия в будущее)
Созданные инкрементные копии могут применяться для продвижения вперёд во времени от изначальной резервной копии. В качестве примера, изначальная копия была создана 10 дней назад, применение инкрементных копий, сделанных в последующие 4 дня, доведут базу данных до состояния 6 дней назад.

Для того чтобы применить инкрементные резервные копии к изначальным резервным копиям, запустите innobackupex со следующими параметрами: innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-1, где «INCREMENTAL-DIR-1» является директорией, содержащей инкрементную копию с изменениями после копии, содержащейся в “BASE-DIR”.

4.Подготовка копии базы данных для работы в рабочем окружении
В случае восстановления базы данных в качестве замены рабочей базы данных или в качестве дополнительной копии MySQL, резервная копия должна подвергнуться подготовке:
innobackupex --apply-log BASE-DIR
Эта команда применяется для чистки директории резервной копии, применению законченных и откату незаконченных транзакций, и подготовка BASE-DIR в качестве базовой директории MySQL.

Сервер MySQL может быть запущен на этой директории и отвечать на запросы.

5. Создание копии базы данных для изначальной репликации.
Репликация базы данных требует включённого binlog логирования у исходной базы данных. В этом случае, резервная копия содержит информацию о позиции binlog и может применяться для репликации мастера, которым является источник копии. Файл xtrabackup_binlog_po_innodb внутри директории резервной копии содержит информацию о позиции binlog и является источником значений в команде «CHANGE MASTER TO», которая применяется для настройки репликации с мастером.
Например, если файл xtrabackup_binlog_po_innodb содержит «./mysql-bin.000037 941022681», тогда команда должна быть:
change master to master_log_file=”mysql-bin.000037”,master_log_pos=941022681;

Эти схемы применения XtraBackup могут быть успешно применены для создания резервной копии с валидными транзакциями крупных баз данных (десятки-сотни гигабайт). Резервная копия может быть создана в любой момент, без простоя службы, и может применяться в качестве источника данных для репликации и для резервной копии базы данных или онлайн копии базы данных.

[1] http://www.percona.com/software/percona-xtrabackup/
[2] http://www.percona.com/doc/percona-xtrabackup/innobackupex/incremental_b...

Запросить цену
Заполните форму и мы свяжемся с Вами в ближайшее время
Вход для клиентов
Система запросов и другие полезные сервисы для наших клиентов
Свяжитесь с нами
Мы с удовольствием ответим на все ваши вопросы