Я ищу отличное решение для резервного копирования моих баз данных MySQL - всех их. Я бы хотел, чтобы каждый был хотя бы в отдельном файле. Мне понадобится возможность FTP позже, но не сейчас. Сейчас мне просто нужно сохранить его на том же сервере, на котором он работает.
Что ты используешь?
Обновить
Полагаю, я должен быть более ясным в том, о чем я прошу ... Я ищу сценарий bash, который будет использовать mysqldump
для создания отдельных файлов резервных копий для каждой базы данных или отдельного файла для таблицы, если таблица достаточно велика.
Я использовал это AutoMySQLBackup скрипт для моих mysqldumps. Делает ежедневные, еженедельные, ежемесячные резервные копии и ротации. Очень удобно.
Вы можете использовать этот скрипт:
#!/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
Я использую простой сценарий Bash, который выполняет mysqldump, а затем rsync (легко использовать ftp) на другой удаленный компьютер.
очень просто, но работает!
нет необходимости отключать базу данных.
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
Люк
Это ежедневное резервное копирование создаст резервную копию вашей базы данных, а также 4-дневные резервные копии и их ротацию. Затем вы можете сделать резервную копию этой папки на удаленном сайте.
#!/bin/bash -x # # Marco Maldonado MySQL Backup # Version 1.0 September 9 2008 # comments marco@penguincares.no-ip.org MYSQL=`which mysql` MYSQLDUMP=`which mysqdump` BACKUPS=/opt/backups dbs=`$MYSQL -u root -pYOURPASSWORD -Bse 'show databases'` for db in $dbs do 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 -pIndr@sN3t $db > $BACKUPS/$db.0 done
Убедитесь, что у вас есть папка внутри / opt, и вы называете ее резервными копиями.