Mysqldump - простое резервное копирование базы данных

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

backup.sh

#!/bin/bash

MYSQL_USER='root'
MYSQL_PASSWORD='ваш пароль для root в mysql'
MYSQL='/usr/bin/mysql'
MYSQLDUMP='/usr/bin/mysqldump'

DATE=`date +"%Y.%m.%d"`
PATH='.'

DATABASES=`$MYSQL --user=$MYSQL_USER --password=$MYSQL_PASSWORD -Bse 'show databases'`

/bin/mkdir $PATH/$DATE

/etc/init.d/httpd stop

for db in ${DATABASES[@]}
do
echo $db
$MYSQLDUMP --character-sets-dir=/usr/share/mysql/charsets --set-charset --default-character-set=utf8 --user=$MYSQL_USER --password=$MYSQL_PASSWORD $db --single-transaction -R | /usr/bin/bzip2 -c > $PATH/$DATE/$db.sql.bz2
done

/etc/init.d/httpd start

Вроде как если есть

Вроде как если есть "--single-transaction", то совсем необязательно стопать апач, т.к. в мане пишут вот что:
"It is useful only with transactional tables such as InnoDB, because then it dumps the consistent state of the database at the time when BEGIN was issued without blocking any applications."

Сам я раньше юзал часто MyISAM и по дефолту писал вот такой дампер:
mysqldump --quick --opt --quote-names --host=$dbhost --user=$dbuser --password=$dbpass $dbname | gzip -c > $fn
(дампит только одну БД)

Не все таблицы в innodb, про

Не все таблицы в innodb, про что как раз и написано в мане. Тем более если не стопать апач, то при нагруженном проекте, с кучей ежесекундных апдейтов, очень быстро кончится память (если у нас все идет напрямую в апач) и сервер залагает и подвиснет, или же будем получать 500 ошибку nginx, к чему российские вебмастера уже, видимо, привыкли :)

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

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании