Backup mysql и как пользоваться mysqldump для резервного копирования баз данных

В недавней заметке я писал о том, как выполнять резервное копирование баз данных PostgreSQL, пришло время рассмотреть аналогичный случай, но для MySQL. Использовать я буду стандартный инструмент для командной строки mysqldump. Его синтаксис весьма прост.

$ mysqldump -u root -h localhost -pRootPassword DbName > DbName-dump.sql


но лучше завернуть в архив

$ mysqldump -u root -h localhost -pRootPassword DbName | gzip -c > DbName-dump.sql.gz


Ключ --all-databases позволяет сделать копии всех баз данных, которые существуют на данном MySQL-сервере, причем в один файл

$ mysqldump --all-databases -u root -h localhost -pRootPassword > Alldb-dump.sql


Тоже самое, но в архиве

$ mysqldump --all-databases -u root -h localhost -pRootPassword | gzip -c > Alldb-dump.sql.gz


Для восстановления (restore) из дампа

$ mysql -u root -h localhost -pRootPassword DbName < DbName-dump.sql


Для автоматизации резервного копирования воспользуемся следующей командой

$ mysql -u root -h localhost -pRootPassword -Bse 'show databases'


она выведет нам имена всех баз данных на сервере, что и нужно для скрипта

#!/bin/bash
DIR="/backups/mysql_dump"
mkdir -p $DIR
LOG="/var/log/mysql_dump.log"
touch $LOG
TIMENAME=`date +%d.%m.%Y-%H.%M`
db=`mysql -u root -h localhost -pRootPassword -Bse 'show databases'`
for n in $db; do
        TIMEDUMP=`date '+%T %x'`
        echo "backup has been done at $TIMEDUMP : $TIMENAME on db: $n" >> $LOG
	mysqldump -u root -h localhost -pRootPassword $n | gzip -c > "$DIR/mysql-$n-$TIMENAME-db.dump.gz" 
done


Ну и какая же это автоматизация, если не добавить запуск скрипта в нужное время

/path/backup_script > /dev/null 2>&1


Например, запускать резервное копирование каждый день в 5 часов утра

0 5 * * * /path/backup_script > /dev/null 2>&1





Вас также может заинтересовать:

Настройка резервного копирования Linux-сервера на AMAZON S3 за 5 минут. Backup-Manager!!!
04.10.2010 - MySQL Master-Master-Slave(s) репликация баз данных
Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
Релиз Redo Backup & Recovery 1.0.4 - дистрибутив linux для создания и разворачивания бекапов
Закрытие базы данных с информацией о часовых поясах
Бекапирование данных GNU Centos Linux на Amazon S3 без дополнительных костылей