TECH / Серверы и сайты 1 мин чтения

Дедовский способ бекапа MySQL — скрипт с mysqldump

Antonio Автор NEMCD
Опубликовано 11.05.2020 · 1 мин

Я уже давно нашел более быстрый и правильный метод бекапа баз MySQL.

Однако для надежности (как второй экземпляр архива) или по каким-либо другим причинам можно использовать «дедовские методы» бекапа базы — классическая программа mysqldump обернутая скриптом для создания дополнительных возможностей.

mysql dump

Например, скрипт, который я нашел в своих закромах использовался когда-то давно, нужно быть осторожным и конечно же его тестировать, возможно что-то доработать.

#!/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 дней, плюс создает архив с дампом базы с текущей датой для каждой базы, кроме служебных.

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

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

Ещё похожие заметки:

Оставить комментарий