Servidor Linux - banco de dados de produção de backup

1

Eu criei um script para fazer backup de um banco de dados de produção. Minha abordagem inicial era fazer backup do próprio diretório mysql (/ var / lib / mysql), mas foi desencorajado por outros usuários.

O script é muito simples, uma vez que o conhecimento do shell script é muito básico.

#!/bin/bash

# backup file 
backupFile="backup_$(date +%d%m%Y_%H%M).sql"

# create the backup file using mysqldump
/usr/bin/mysqldump -uuser -ppass db > /home/user/db_backups/$backupFile

# copy the backup file to the remote server
rsync -e ssh -varuzP /home/user/db_backups/ user@remoteserver:/home/user/backup/mysql

Antes de mais nada, gostaria de saber sua opinião sobre o roteiro. Segundo, gostaria também de saber se o rsync de alguma forma verifica uma possível corrupção de arquivo durante a transmissão entre o servidor de produção e o servidor de backup remoto.

Agradecemos antecipadamente pela ajuda Atenciosamente!

    
por Rui Gonçalves 30.07.2010 / 12:01

3 respostas

2

Pelo menos o seu roteiro é simples e direto.

Uma maneira de verificar se o rsync foi ok é comparar os md5sums.

LOCALCOPY='md5sum /home/user/db_backups/$backupFile'
REMOTECOPY='ssh user@remoteserver md5sum /home/user/backup/mysql/$backupfile'

if [ $LOCALCOPY == $REMOTECOPY ]; then echo "Checksum OK"; else echo "Checksum ERROR. Eep."; fi

Ou algo assim, na verdade, não testamos isso.

    
por 30.07.2010 / 12:08
2

Um mysqldump com um banco de dados grande deve ser evitado por motivos de desempenho e integridade. Você poderia configurar uma réplica e fazer o backup no escravo.

Pesquisando na internet, você encontrará muitos artigos sobre o backup do mysql.

    
por 30.07.2010 / 12:10
1

O script parece bom para mim, mas você pode querer pensar sobre a configuração de um sistema de ciclo em que backups antigos são sobrescritos (aproveitando ao máximo o rsync). Quanto à verificação de corrupção, acredito que o rsync fará isso automaticamente se você usar a opção --checksum .

A menos que você planeje assistir a saída ou canalizá-la para um arquivo, não aconselho usar a opção --verbose . Além disso, não há necessidade de -a e -r juntos:

-a, --archive
This is equivalent to -rlptgoD.

Veja também a pergunta do StackOverflow: Garantindo a integridade dos dados do mysqldump < - > rsync

    
por 30.07.2010 / 12:21