Бэкап баз mysql

Бэкап данных одно из очень важных мероприятий проводимых (настроенных …) системным администратором. Конечно на самом деле бэкап нужен везде, ведь Ваши фотки которые Вы копите уже 5 лет тоже важны и может быть даже важнее супер баз данных на Вашем предприятии или документы которые Вы набираете и храните годами.
Но сегодня мы остановимся на сохранение баз данных mysql. И хоть mysql мне перестает нравиться из за того что им теперь владеет Oracle, и я больше стал любить Postgres.

чтобы сделать бэкап баз mysql нужно определиться что нам нужно — или одна база конкретно, или все. Если одна то смотрим какие у нас есть базы

#mysql
#show databases;

Увидели базу и запоминаем название с которым будем работать. Для сохранения используется утилита mysqldump она имеет разнообразные параметры
-f, —force игнорировать ошибки
-u логин под которым работаем с БД
-p запрашиваем пароль (можно указать явно без пробела)
—databases для создания рабочей базы «с нуля», без использования данного ключа восстанавливается одну базу данных и явно указывается, куда нужно помещать восстанавливаемые данные.
—all-databases сделать копии всех баз данных.
—no-data. создается только копия структуры таблицы/баз без самих данных.
—result-file=название файла — этот ключ можно использовать для перенаправления вывода в файл. Можно использовать обычное перенаправление командой «>» или «< »
—quick пишет данные сразу на диск минуя запись в память
—default-character-set=название кодировки Указывает наименование кодировки

Зная все эти нехитрые параметры сделаем архив базы example

mysqldump -u root -p -f example > \example.mysql

и можно его развернуть обратно

mysql -u root -p -f example < \example.mysql

Также удобно сразу сжать базу (если она вдруг большая)

mysqldump -u root -p -f example | gzip -c > example.mysql.gz

Используя тот же gzip мы можем сделать название архива с датой

mysqldump -u root -p -f example | gzip -c > `date "+%Y-%m-%d"`example.mysql.gz

Таким образом можно создавать архив определенное количество раз (каждый день или чаще) через crontab (не забудьте прописать логин и пароль явно), у удалять старые архивы можно из того же crontab командой

find ~/backupdir -name "*.gz" -mtime +31 -exec rm -f {} \;

Прокомментировать

XHTML: Вы можете использовать эти тэги для форматирования текста: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>