Дедовский способ бекапа MySQL — скрипт с mysqldump
Я уже давно нашел более быстрый и правильный метод бекапа баз MySQL.
Однако для надежности (как второй экземпляр архива) или по каким-либо другим причинам можно использовать «дедовские методы» бекапа базы — классическая программа mysqldump обернутая скриптом для создания дополнительных возможностей.
Например, скрипт, который я нашел в своих закромах использовался когда-то давно, нужно быть осторожным и конечно же его тестировать, возможно что-то доработать.
#!/bin/sh DB_BACKUP="/backups_db/`date +%Y-%m-%d`" mkdir -p $DB_BACKUP find /backups_db/ -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \; USER='root' PASSWORD='root' HOST='localhost' PORT='3306' for i in $(echo 'SHOW DATABASES;' | /usr/bin/mysql -u$USER -p$PASSWORD -h$HOST -P$PORT |grep -v '^Database$'); do if [ $i != 'mysql' ] ; then if [ $i != 'information_schema' ] ; then if [ $i != 'performance_schema' ] ; then if [ $i != 'phpmyadmin' ] ; then /usr/bin/mysqldump -u$USER -p$PASSWORD -h$HOST -P$PORT -Q -c -e -C --add-drop-table --add-locks --quick --lock-tables $i | gzip -c -5 > $DB_BACKUP/db-$i-$(date +%Y-%m-%d).gz; fi fi fi fi done; |
Скрипт автоматически удаляет бэкапы баз старше 14 дней, плюс создает архив с дампом базы с текущей датой для каждой базы, кроме служебных.
Восстановить базу из бэкапа можно командами, пример тут
Советую время от времени проверять результаты бэкапов и возможность их восстановления, чтобы не остаться без данных!