Бэкап на Линуксе ( LAMP ) - MySQL и пр. ?

Обсуждение технических вопросов по продуктам Novell под Linux, а также *nix систем

Бэкап на Линуксе ( LAMP ) - MySQL и пр. ?

Сообщение Андрей Тр. aka RH » 21 сен 2007, 18:56

Возник такой вопрос - каковы наиболее эффективные способы бэкапа линуховского сервера ( и, разумеется, последующего его восстановления в случае чего ). В частности, интересует момент бэкапа баз в MySQL. Речь про регулярный бэкап куда-нить на другой сервер ( в идеале не ограничивая себя Линуксом ).
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Юрий Беляков » 26 сен 2007, 06:35

Делаю бэкап MySQL по простому - скрипт по cron'у раз в сутки.
Бэкап хранится 5 дней. Данные бэкапа rsync'ом перекидываются в другое место.
Восстанавливать просто - из командной строки через mysql просто выполнить команды из файла бэкапа.

Код: Выделить всё
#!/bin/sh

MYSQLUSER="user"
MYSQLPASS="password"

BACKUP_DIR=/backup_dir
DATE=`date +%Y%m%d`

MYSQL_COMMAND="/usr/local/bin/mysql -u$MYSQLUSER -p$MYSQLPASS"
BACKUP_COMMAND="/usr/local/bin/mysqldump -Q -u$MYSQLUSER -p$MYSQLPASS"

$MYSQL_COMMAND -e 'SHOW DATABASES' | sed 's/|//g' | grep -v 'Database' | grep -v 'information_schema' | while read DB_NAME; do
        $BACKUP_COMMAND $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME-$DATE.gz
done

find $BACKUP_DIR -ctime +5 | xargs rm -f
Аватара пользователя
Юрий Беляков
 
Сообщения: 628
Зарегистрирован: 31 май 2002, 11:46
Откуда: Екатеринбург

Сообщение Андрей Тр. aka RH » 26 сен 2007, 15:20

Юрий Беляков писал(а):Делаю бэкап MySQL по простому - скрипт по cron'у раз в сутки.

Да, такой вариант приходит в голову первым .. но я не уверен, нормально ли это - таким образом сохранять БД "на лету", ведь там могут быть локи и прочая фигня .. по аналогии с бэкапом тома с открытыми на нём файлами. Можно, конечно, считать, что в 2 ч. ночи никто не пользуется этой базой .. и это нормально ?

А что насчет остального ( L, A и P в LAMP ) ? Просто сохранять \srv, где Апач ? и \etc тоже ?
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Михаил Григорьев » 27 сен 2007, 09:51

В 2003 году один друг на коленке написал скриптик для бэкапы разных баз и файлов на FreeBSD, я потом кое что усовершенствовал и до сих пор использую на freebsd эти скрипты:

http://www.novell.chel.ru/temp/backup-script.zip

Смысл прост:

в /usr/local/etc/backup/ пихаем все скрипты из архива
в cron прописываем задание на бэкап, например:
Код: Выделить всё
0       3       *       *       *       root    /usr/local/etc/backup/start_backup.sh


в backup.conf пишем что бэкапить и куда.

Бэкапится у нас так: по крону срабатывает start_backup.sh далее он монтирует по NFS с сервера определенный каталог в /mnt/backup
Потом выполняется backup.sh который и делает все дело, быкапит базу mysql или postgresql или openldap + бэкапит нужные каталоги (они указываются в include.conf и exclude.conf)
Причем файлы бэкапятся по выходным все, а по будним дням инкрементно.
Единственно что важно, это проверить в скрипте backup.sh все пути до нужных файликов (gtar, mysqldump, ldapsearch и другие)
Аватара пользователя
Михаил Григорьев
 
Сообщения: 1462
Зарегистрирован: 04 июн 2002, 12:22
Откуда: Челябинск

Сообщение Юрий Беляков » 27 сен 2007, 12:04

Андрей Тр. aka RH писал(а):Да, такой вариант приходит в голову первым .. но я не уверен, нормально ли это - таким образом сохранять БД "на лету", ведь там могут быть локи и прочая фигня .. по аналогии с бэкапом тома с открытыми на нём файлами. Можно, конечно, считать, что в 2 ч. ночи никто не пользуется этой базой .. и это нормально ?


Добавить опции --opt или --lock-tables
Аватара пользователя
Юрий Беляков
 
Сообщения: 628
Зарегистрирован: 31 май 2002, 11:46
Откуда: Екатеринбург

Сообщение Андрей Тр. aka RH » 28 сен 2007, 18:43

Спасибо за ответы, будем пробовать. А :
Юрий Беляков писал(а):Добавить опции --opt или --lock-tables

это куда ? В BACKUP_COMMAND="/usr/local/bin/mysqldump -Q -u$MYSQLUSER -p$MYSQLPASS" ? это опции mysqldump ?
Даешь отдельный раздел по ZENworks ... :bad-words: .. и печати !
Аватара пользователя
Андрей Тр. aka RH
 
Сообщения: 3937
Зарегистрирован: 18 июн 2002, 11:27

Сообщение Юрий Беляков » 01 окт 2007, 06:24

Андрей Тр. aka RH писал(а):Спасибо за ответы, будем пробовать. А :
Юрий Беляков писал(а):Добавить опции --opt или --lock-tables

это куда ? В BACKUP_COMMAND="/usr/local/bin/mysqldump -Q -u$MYSQLUSER -p$MYSQLPASS" ? это опции mysqldump ?


Да. В документации (или где-то в комментариях к утилите) про это написано.
Аватара пользователя
Юрий Беляков
 
Сообщения: 628
Зарегистрирован: 31 май 2002, 11:46
Откуда: Екатеринбург


Вернуться в *nix

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

cron