резервное копирование (backup) всех баз mysql
Запись создана 11 февраля, 2009
Прошелся по нескольким блогам. почитал и удивился тому что для того чтобы сделать дампы всех баз mysql люди используют mysqldump —all-databases. На мой взгляд вариант более чем неудобный.
Предложу более правильный вариант, снимаются дампы со всех баз данных каждая база в отдельный файл. Для пояснения:
/backup/mysql/ — папка куда будем складывать дампы.
megapass — пароль root к mysql
итак собственно сам скрипт:
[cc lang=»bash»]
for i in `mysql -pmegapass -e’show databases;’ | grep -v information_schema | grep -v Database`; do mysqldump -pmegapass $i > `date +%Y-%m-%d`-$i; gzip `date +%Y-%m-%d`-$i;done
[/cc]
теперь поясню что делается, в цикле вывода имен всех баз данных кроме information_schema и Database выполняется mysqldump в файл дата-имя_базы, затем дамп жмется gzip-ом.
На выходе получаем пачку файлов на подобии:
2009-02-11-shakirov_kayako.gz
2009-02-11-shakirov_mantis.gz
2009-02-11-shakirov_openfire.gz
Например если в системе несколько пользователей и базы данных у них сделаны правильно (имя базы с префиксом имени пользователя, например shakirov_base), то можно делать бакапы баз разных пользователей в разные папки. С полученными бакапами можно поступать как удобно, хранить на отдельном диске, разделе. внешнем ftp сервере или заливать куда-то по scp.
Схожие темы
» Запись из раздела CentOS Linux, MySQL, Unix | 6 комментариев
Комментарии
6 комментариев to “резервное копирование (backup) всех баз mysql”
Ответить
Сначала списком бекапил, но стало неудобно из-за необходимости каждый раз прописывать базу. Спасибо за совет!
Сенк за совет, заюзаю!
А каким образом все их восстановить за раз?
спасибо — интересное решение
Спасибо за скрипт!
Спасибо! Классный способ!