Linux: Backup and Restore Mysql

mysql_backup_restore

Мой небольшой скрипт, который переходит у меня по наследству с сервера на сервер.

1. Бекап mysql.

Бекап будет жить в «/opt/backup/mysql/» папки с именами баз создаются автоматически. В зависимости от целей и размеров базы, необходимо решить, как мы будем бекапиться:

«month day» — создаст архивы с затиркой по дням месяца
«week day» — создаст архивы по дням недели.

#!/bin/sh

mysqldump="mysqldump"
mysqlparam="-u <user_from_backup> -p<password_from_backup>"

bzip2="bzip2"

mysqlcheck -Ao ${mysqlparam}

databases=`echo "show databases" | mysql ${mysqlparam} | grep -v "^D"`

dstdir="/opt/backup/mysql/"

# back it up
for dbs in $databases
do
mkdir ${dstdir}/$dbs
#month day
mysqldump $mysqlparam $dbs | gzip > ${dstdir}/$dbs/`date +%d.$dbs.sql`.gz
#week day
#mysqldump $mysqlparam $dbs | gzip > ${dstdir}/$dbs/`date +%u.$dbs.sql`.gz
done

Восстановление из бекапа:

Дописываем в начало выгрузки строчку

CREATE DATABASE IF NOT EXISTS `mydatabase`;

mysql -u <user_from_backup> -p  < sql_file.sql
В приглашении вводит пароль.

Или если у нас архив:
gunzip -c дамп.gzip | mysql -u <user_from_backup> -p
Вы можете оставить комментарий ниже.