Backup c/ MysqlAdministrator

4 respostas
ken420

Ola pessoal, gostaria de implementar o metodo de BACKUP no meu programa, no caso ele iria salvar os dados do meu banco de dados no mysql, dei uma pesquisada e vi que o mysql administrator e uma solucao dei uma lida no manual dele no site do mysql mas ainda n entendi direito como fazer para implementar o codigo de backup no meu projeto algueim me da uma forca? agradeco a atencao;

4 Respostas

dlt

Um jeito não muito bonito de se fazer isso é usando Runtime.getRuntime().exec + mysqldump.

ken420

pq nao muitu bonito ja ouvi fala tamem rumores desses mysqldump poderia me da um exemplo de um metodo usando ele?

dlt

O problema não é o mysqldump, é o jeito que eu fiz pra chamar ele, usando o Runtime.exec. Sei lá, cheira a gambiarra esse negócio.
Pesquisa o msyqladmin tb e vê se ele resolve isso melhor que o mysqldump.

davidbuzatto
mysqldump -u root -proot --all-databases > nomeDoArquivo
-u: usuário (root no exemplo) -p: senha (root no exemplo. a senha deve vir GRUDADA ao parâmetro -p) --all-databases: todas as bases de dados nomeDoArquivo: nome do arquivo que irá conter todos os dados do banco exportado.

Vc pode criar um .bat também para automatizar o backup.
O exemplo abaixo é de um script de backup de um servidor linux que eu administro.

Com algumas alterações você consegue fazer um .bat.

#!/bin/bash

# script de backup das bases de dados
# escrito por David Buzatto

# senha gerada
senhaBanco=`/etc/scripts/gerarSenhaBanco.sh`

# entra do diretório de backups do banco de dados
cd /mnt/backup/bancoDeDados

# obtém o nome do dia da semana
diaDaSemana=`date +%A`

# muda para o diretório do dia da semana
cd $diaDaSemana

# cria o nome do arquivo de backup: backupCompleto-diaMes-Mes-Ano.sql
nomeArquivo="backupCompleto-`date +%d`-`date +%m`-`date +%y`.sql"

# remove o conteúdo do diretório
rm -r * ;

# realiza o backup completo no diretório atual
mysqldump -u root -p$senhaBanco --all-databases > $nomeArquivo

# verifica se é domingo.
# se for, compacta todas as pastas da semana e
# armazena no diretório Semana

if [ "${diaDaSemana}" = "domingo" ]
then

    # vai para o diretório pai
    cd ..

    nomeArquivoSemana="backupSemana-`date +%d`-`date +%m`-`date +%y`.tar"

    # agrupa as pastas
    tar -cf $nomeArquivoSemana segunda/ terça/ quarta/ quinta/ sexta/ sábado/ domingo/

    # compacta
    gzip $nomeArquivoSemana

    # move para a pasta de semana
    mv $nomeArquivoSemana.gz semana/

fi
Criado 9 de dezembro de 2008
Ultima resposta 10 de dez. de 2008
Respostas 4
Participantes 3