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

Раздел: Linux
Написано: 11.05.2020
Автор: Antonio

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

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

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




Поделиться с друзьями:

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



Написать

Копирование информации с сайта возможно только с указанием прямой ссылки - https://nemcd.com