Shell MySQL Backups - какое у вас решение?

Я ищу отличное решение для резервного копирования моих баз данных MySQL - все они. Я хотел бы, чтобы каждый, по крайней мере, в своем собственном файле. Мне нужна возможность FTP позже, но не сейчас. Сейчас мне просто нужно сохранить его на том же сервере, на котором он работает.

Что ты используешь?

Обновить

Я полагаю, я должен быть более ясным в том, что я прошу... Я ищу скрипт bash, который будет использовать mysqldump создать отдельные файлы резервных копий для каждой базы данных или отдельный файл для таблицы, если таблица достаточно велика.

4 ответа

Решение

Вы можете использовать этот скрипт:

#!/bin/bash
BACKUP_DIR="/opt/backup"
MYSQL_USER=your_user
MYSQL_PASS=your_pass
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

DB_LIST="$($MYSQL -u $MYSQL_USER -p$MYSQL_PASS -Bse 'show databases')"
for db in $DB_LIST;
do
    BACKUP_SUBDIR="$BACKUP_DIR/mysql_`date +%Y-%m-%d`"
    BACKUP_FILE="$BACKUP_SUBDIR/$db.gz"
    if [ ! -d $BACKUP_SUBDIR ]; then
        mkdir -p $BACKUP_SUBDIR
    fi
    if [ -f $BACKUP_FILE ]; then
        unlink $BACKUP_FILE
    fi
    $MYSQLDUMP -u $MYSQL_USER -p$MYSQL_PASS $db | $GZIP -9 > $BACKUP_FILE
done

Я использовал этот скрипт AutoMySQLBackup для моих mysqldumps. Делает ежедневные, еженедельные, ежемесячные резервные копии и ротации. Довольно удобно.

Эта ежедневная резервная копия создаст резервную копию вашей базы данных, и она будет создавать 4-дневные резервные копии и вращать их. Затем вы можете сделать резервную копию этой папки на удаленном сайте.

#! / bin / bash -x
#
# Marco Maldonado MySQL Backup
# Версия 1.0 9 сентября 2008 г.
# комментарии [email protected]

MYSQL=`which mysql`
MYSQLDUMP=`which mysqdump`
BACKUPS=/ Opt / резервное копирование
dbs=`$MYSQL -u root -pYOURPASSWORD -Bse 'показать базы данных``

за дБ в $ дбс
делать
rm -rf $BACKUPS/$db.3
mv $BACKUPS/$db.2 $BACKUPS/$db.3
mv $BACKUPS/$db.1 $BACKUPS/$db.2
mv $BACKUPS/$db.0 $BACKUPS/$db.1
#mkdir $BACKUPS/$db.0
#$HOTCOPY $userpassword $db $BACKUPS/$db.0
mysqldump -u root [email protected] $db  > $BACKUPS/$db.0
сделанный

Убедитесь, что у вас есть папка внутри / opt и вы называете ее резервной копией

Я использую простой Bash-скрипт, который выполняет mysqldump, а затем rsync (легко использует ftp) для другой машины.

очень просто, но это работает!

нет необходимости снимать базу данных либо.

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

Люк

Другие вопросы по тегам