Резервное копирование MySQL

MySQL Logo

Существует программа под названием automysqlbackup, которая доступна в репозиториях Ubuntu.
Эта утилита может автоматически выполнять резервное копирование через регулярные промежутки времени.
Чтобы установить эту программу, введите следующую команду в терминале:

sudo apt-get install automysqlbackup

Выполните команду, набрав:

sudo automysqlbackup

Основной конфигурационный файл для automysqlbackup расположен в "/etc/default/automysqlbackup".
Откройте его с правами администратора:

sudo nano /etc/default/automysqlbackup

Вы можете видеть, что этот файл, по умолчанию, присваивает много переменных в файле MySQL, расположенного по адресу "/etc/mysql/debian.cnf". Этот документ содержит информацию для входа и обслуживания
Из этого файла, он считывает данные пользователя, пароль и базы данных, которые должны зарезервированы.
Расположение по умолчанию для резервных копий /var/lib/automysqlbackup.
Поиск этот каталог, чтобы увидеть структуру резервных копий:

ls /var/lib/automysqlbackup
daily monthly weekly

Если мы посмотрим в ежедневный каталог, то увидим подкаталог для каждой базы данных, внутри которого находится сжатый SQL дамп с момента, когда команда была запущена:

ls -R /var/lib/automysqlbackup/dailey

.:
database_name information_schema performance_schema
./database_name:
database_name_2013-08-27_23h30m.Tuesday.sql.gz
./information_schema:
information_schema_2013-08-27_23h30m.Tuesday.sql.gz
./performance_schema:
performance_schema_2013-08-27_23h30m.Tuesday.sql.gz

Ubuntu устанавливает cron сценарий с помощью этой программы, которая будет работать каждый день. Он будет делать файлы резервных копий в соответствующий каталог.
Если к вам будут приходить письма с ошибкой:mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'debian-sys-maint'@'localhost' for table 'cond_instances' when using LOCK TABLES, то внесите следующие изменения в файл конфигурации:

DBNAMES="all"
DBEXCLUDE="information_schema performance_schema"


Для RPM-подобных, идем на sourceforge.net выбираем дистрибутив и заливаем на свой сервер. Распаковываем, заходим в директорию и запускаем команду:

./install.sh

При нормальной установки у нас появиться примерно такой вывод:


### Creating global configuration directory /etc/automysqlbackup

success

Далее, приводим конфиг

vim /etc/automysqlbackup/automysqlbackup.conf

к такому виду:

CONFIG_mysql_dump_username='root'
CONFIG_mysql_dump_password='YourPassword'
CONFIG_mysql_dump_host='localhost'
CONFIG_backup_dir='/var/backup/db'
CONFIG_do_monthly="01"
CONFIG_do_weekly="5"
CONFIG_rotation_daily=6
CONFIG_rotation_weekly=35
CONFIG_rotation_monthly=150
CONFIG_mysql_dump_port=3306
CONFIG_mysql_dump_compression='gzip'

Создаем папку для резервных копий и запускаем копирование:

mkdir /var/backup/db && automysqlbackup

Заглядываем в нашу папку. Если там лежат копии, то для ежедневного копирования надо прописать в кроне команду /usr/local/bin/automysqlbackup >> /dev/null 2>&1 выбрав удобное вам время для резервного копирования. Почему нужно писать в крон? У меня лично, ни разу автоматом не завелось на дистрибутивах CentOS 7. Если вас это напрягает, запускайте копирование вручную.

Оцените блог: 
Средняя: 3 (179 оценки)

Задать вопрос