Я только что установил серверную версию Jungle Disk на свой Linux-сервер и настроил резервное копирование всего каталога / var один раз за ночь. Есть ли проблема с резервным копированием этого каталога во время работы моего сервера и mysql? Я читал, что вам следует закрыть mysql перед резервным копированием файлов mysql ... но я не видел такого предупреждения в документации Jungle Disk.
По моему мнению, лучше всего использовать сценарий, который запускает mysqldump и выгружает базу данных в папку, в которой jungledisk затем создает резервные копии, это даст вам хорошую надежную резервную копию базы данных. Mysqldump прост в использовании, у него всего несколько флагов и вуаля хорошее резервное копирование горячих копий.
Если вам нужна хорошая резервная копия базы данных Mysql, вы должны исключить каталог базы данных Mysql из Jungledisk, а затем периодически использовать mysqldump для создания файла, который вы сможете сделать резервную копию.
Если вы этого не сделаете, у резервной копии Jungledisk ваших данных Mysql будет высокая вероятность того, что она будет повреждена, в зависимости от того, насколько активна ваша база данных.
В других ответах есть правильная идея, вы не можете, не должны и не будете (верно?) Создавать резервные копии живых файлов базы данных. Вы ДОЛЖНЫ использовать какую-то утилиту экспорта, но вместо встроенной утилиты mysqldump я настоятельно рекомендую mysqlhotcopy для обеспечения согласованности данных. Резервное копирование данных по мере их восстановления оставит вас в неисправном состоянии после восстановления.
Сохраните это и запустите его в задании cron - Затем просто создайте сценарий резервного копирования, у которого есть резервная копия каталога db dump
Кстати, отличный сценарий от людей из @ NixCraft:
#!/bin/bash
# Shell script to backup MySql database
# To backup Nysql databases file to /backup dir and later pick up by your
# script. You can skip few databases from backup too.
# For more info please see (Installation info):
# http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
# Last updated: Aug - 2005
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2004, 2005 nixCraft project
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
MyUSER="SET-MYSQL-USER-NAME" # USERNAME
MyPASS="SET-PASSWORD" # PASSWORD
MyHOST="localhost" # Hostname
# Linux bin paths, change this if it can not be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"
# Backup Dest directory, change this if you have someother location
DEST="/backup"
# Main directory where backup will be stored
MBD="$DEST/mysql"
# Get hostname
HOST="$(hostname)"
# Get data in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y")"
# File to store current backup file
FILE=""
# Store list of databases
DBS=""
# DO NOT BACKUP these databases
IGGY="test"
[ ! -d $MBD ] && mkdir -p $MBD || :
# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST
# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
for db in $DBS
do
skipdb=-1
if [ "$IGGY" != "" ];
then
for i in $IGGY
do
[ "$db" == "$i" ] && skipdb=1 || :
done
fi
if [ "$skipdb" == "-1" ] ; then
FILE="$MBD/$db.$HOST.$NOW.gz"
# do all inone job in pipe,
# connect to mysql using mysqldump for select mysql database
# and pipe it out to gz file in backup dir :)
$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
fi
done
Что касается предоставленного сценария и выполнения mysqldumps - поскольку это обсуждение сосредоточено на jungledisk, вы НЕ хотите архивировать дамп с помощью gzip.
Jungledisk использует дедупликацию данных и дифференциальное резервное копирование, чтобы повысить эффективность своего хранилища. Если делать сырые дампы; тогда все работает. Если вы сначала используете gzip, тогда он должен хранить весь (другой) gzip; и не достигается оптимизация скорости резервного копирования или требуемого пространства для хранения резервных копий.
Это действительно старый вопрос, но на него еще нет принятого ответа, и только один ответ ссылается на другой инструмент, кроме mysqldump
для выполнения резервного копирования. Как упоминает VxJasonxV, mysqlhotcopy можно использовать для получения онлайн-копии ваших баз данных без завершения работы. Однако mysqlhotcopy работает только с таблицами MyISAM.
Если вы запускаете много таблиц InnoDB, посмотрите Percona's xtrabackup
инструмент. Он сделает онлайн-резервную копию вашей базы данных MySQL, не закрывая MySQL. Percona создала универсальный сценарий, который будет создавать резервные копии ваших таблиц InnoDB и MyISAM, не отключая вашу базу данных. Скрипт называется innobackupex
и это подтверждает вышеупомянутые xtrabackup
инструмент для выполнения ваших онлайн-резервных копий.
Проверьте это, это определенно упрощает резервное копирование баз данных MySQL.