Утилита mylvmbackup (http://lenz.homelinux.org/mylvmbackup/) позволяет автоматизировать создание резервных копий БД MySQL с минимальным временем простоя базы. Процесс создания бэкапа состоит из следующих фаз: установка блокировки на таблицы, инициирование сброса кэшей на диск, создание LVM снапшота директории с MySQL таблицами, снятие блокировки. Так как время создания снапшота очень мало, простой базы сводится к минимуму при полном сохранении целостности.Пример использования утилиты для системы на которой уже работает MySQL, директория с БД (/var/lib/mysql) размещена на LVM разделе и в системе доступен раздел /dev/sdb на котором достаточно для создания временных LVM снапшотов.
# df -h
...
/dev/mapper/server1-mysql 8.9G 170M 8.3G 2% /var/lib/mysql
Имя LVM группы server1, имя раздела с данными MySQL - mysql.
# pvdisplay
--- Physical volume ---
PV Name /dev/sda5
VG Name server1
PV Size 29.52 GB / not usable 3.66 MB
...
# vgdisplay
--- Volume group ---
VG Name server1
System ID
Format lvm2
...
# lvdisplay
--- Logical volume ---
LV Name /dev/server1/mysql
VG Name server1
...
Диск /dev/sdb имеет один раздел /dev/sdb1, занимающий все пространство диска. Подключаем его к имеющемуся LVM группе server1 с целью увеличения свободного места, которое потребуется для работы со снапшотами. Дополнительные LVM разделы создавать не нужно.
# pvcreate /dev/sdb1
# vgextend server1 /dev/sdb1
Устанавливаем пакет mylvmbackup:
# aptitude install mylvmbackup
Изучаем руководство по mylvmbackup и при необходимости меняем файл конфигурации /etc/mylvmbackup.conf под свои нужды:
$ man mylvmbackup
По умолчанию бэкапы будут сохраняться в директорию /var/cache/mylvmbackup/backup.
Простейшая команда для создание резервной копии (параметры можно указать в файле конфигурации) MyISAM таблиц:
mylvmbackup --user=root --password=пароль --mycnf=/etc/mysql/my.cnf \
--vgname=server1 --lvname=mysql --backuptype=tar
Пример для InnoDB таблиц:
mylvmbackup --user=root --password=пароль --innodb_recover --skip_flush_tables \
--mycnf=/etc/mysql/my.cnf --vgname=server1 --lvname=mysql --backuptype=tar
В опции --vgname указываем имя LVM группы, а в опции --lvname имя LVM раздела с данными.
После выполнения команды проверяем корректность создания резервной копии:
ls -l /var/cache/mylvmbackup/backup
-rw-r--r-- 1 root root 246847 2010-01-27 19:17 backup-20100127_191658_mysql.tar.gz
В созданном tar.gz файле находятся две директории:
backup с архивом таблиц, который можно просто распаковать в рабочую директорию /var/lib/mysql при проведении восстановления данных.
backup-pos с копией файла конфигурации my.cnf.
URL: http://www.howtoforge.com/how-to-back-up-mysql-databases-wit...
Обсуждается: http://www.opennet.me/tips/info/2291.shtml