Posso fazer backup do mysql enquanto o mysql está rodando?

2

Acabei de instalar a edição do servidor Jungle Disk no meu servidor linux e configurá-lo para fazer o backup do diretório / var completo uma vez por noite. Existe algum problema em fazer backup desse diretório enquanto meu servidor e o mysql estão em execução? Eu li que você deve desligar o mysql antes de fazer o backup dos arquivos mysql ... mas eu não vi nenhum aviso como esse na documentação do Jungle Disk.

    
por mk1000 27.10.2010 / 01:19

6 respostas

4

Se você quiser um bom backup do banco de dados Mysql, você deve excluir o diretório Mysql Database do Jungledisk e usar o mysqldump periodicamente para criar um arquivo que você poderá fazer backup.

Se você não fizer isso, o backup do Jungledisk dos seus dados do Mysql terá uma boa probabilidade de estar corrompido, dependendo de quão ativo seu banco de dados está.

    
por 27.10.2010 / 01:42
4

No meu opignon, sua melhor aposta é usar um script que execute mysqldump e descarregue o banco de dados em uma pasta que jungledisk, em seguida, backups, isso lhe dará um bom backup sólido do banco de dados. Mysqldump é fácil de usar, é apenas alguns sinalizadores e voila bom backup de cópia quente.

    
por 27.10.2010 / 01:59
0

As outras respostas têm a ideia certa, você não pode, não deve, e não irá (certo?) fazer backup dos arquivos de banco de dados ao vivo. Você DEVE usar algum tipo de utilitário de exportação, mas ao invés do utilitário mysqldump embutido, sugiro mysqlhotcopy para garantir a consistência dos dados. Fazer o backup dos dados à medida que forem alterados deixará você em um estado corrompido quando restaurado.

    
por 27.10.2010 / 02:03
0

Salve isso e execute-o em um cron job - Em seguida, basta ter o script de backup que você tem backup do diretório db dump

Grande script do pessoal da @ @ NixCraft btw:

    #!/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
    
por 10.11.2010 / 04:39
0

Em relação ao script fornecido e ao fazer mysqldumps - já que esta discussão está focada no jungledisk, você NÃO quer fazer o gzip do despejo.

O Jungledisk usa a deduplicação de dados e backups diferenciais para ajudar a melhorar a eficiência de seu armazenamento. Se você fizer lixeiras cruas; então tudo funciona. Se você gzip primeiro, então ele tem que armazenar o gzip inteiro (diferente); e não são obtidas otimizações na velocidade de backup ou no espaço de armazenamento de backup necessário.

    
por 07.03.2011 / 13:50
0

Essa é uma pergunta muito antiga, mas ainda não há uma resposta aceita para ela, e apenas uma resposta faz referência a uma ferramenta diferente de mysqldump para executar seu backup. Como o VxJasonxV menciona, mysqlhotcopy pode ser usado para fazer uma cópia on-line de seus bancos de dados sem desligar. No entanto, mysqlhotcopy só funciona com tabelas MyISAM.

Se você executar muitas tabelas InnoDB, confira o xtrabackup da Percona ferramenta. Ele fará um backup online do seu banco de dados MySQL sem desligar o MySQL. Percona construiu um script tudo-em-um que fará backup de suas tabelas InnoDB e suas tabelas MyISAM, sem deixar seu banco de dados offline. O script é chamado de innobackupex e incorera a% acima mencionada ferramentaxtrabackup para executar seus backups on-line.

Check it out, definitivamente faz o backup de bancos de dados MySQL muito fácil.

    
por 05.08.2013 / 15:15