Backup de Banco de Dados (PostgreSQL e/ou MySQL)
Em um post passado, disponibilizei um programa feito em Shell Script que permite efetuar o backup do MySQL. Bem, efetuei algumas atualização que havia prometido, e agora já é possivel receber e-mail após a realização do backup e fazer copias também do PostgreSQL.
Características
- Arquivos individuais para cada bancos de dados: Permite gerar um arquivo compactado (gzip) para cada BD do seu programa de BD (MySQL ou PostgreSQL) ou,
- Arquivo único para todos os bancos de dados: Gera um único arquivo contendo o backup de todos os bancos de dados do programa de BD (MySQL ou PostgreSQL);
- Histórico de backup com limite máximo de versões anteriores: Ideal para casos onde é necessário restaurar o estado de um banco de dados de alguns dias atrás e o administrador não dispõe de nenhum software que gerencia o backup (Data Protector, Veritas, Tivoli, etc);
- Arquivos com nomes únicos: Caso você utiliza algum software responsável pelo gerenciamento do backup, basta não optar pelo histórico e toda vez que for executado o script os arquivos serão sobrescritos;
- Exclusão de Databases: Permite definir quais bancos de dados não serão copiados (funciona apenas quando for gerado arquivos individuais para cada banco de dados). Permite uma lista de exclusão por programa de BD (MySQL ou PostgreSQL);
- Backup por programa ou integrado: Permite que seja efetuado backup apenas do MySQL, apenas do PostgreSQL ou de ambos os programas na mesma execução;
Download:
backupBd.sh (Versão 1.1)
TODO
- Permitir a exclusão de databases mesmo quando optar-se pela geração de um único arquivo de backup;
- Recuperação de dados (script para restore de databases);
- Mais alguma coisa ?
Ah, todas as sugestões e críticas são bem vindas!
lombra:
Cara, parabéns!!! O Script funciona perfeitamente! Me ajudou bastante!!!!! Continue assim!
Abcao!!!!
30 março 2006, 11:33 amGlauco:
Seria legal adicionar algumas rotinas de manutenção do banco de dados além do backup, como por exemplo:
1 abril 2006, 12:02 pm- Vacuuming (para recuperar espaço em disco ocupado por registros deletados, alterados, etc. E tb atualizar as estatísticas utilizadas pelos otimizadores de query dos bancos de dados);
- Reindexing (otimização dos indices);
- Manutenção dos arquivos de log.
Todas essas rotinas podem ser realizadas com simples comandos, vc pode encontrar mais detalhes na documentação do postgresql, facilmente encontrada no site http://www.postgresql.org/docs
Mauricio:
Muito bom, parabéns!
Só acho que faltou um variável para configurar o host…
Valeu, mesmo!!!
4 abril 2006, 10:14 amRailton NEpomuceno:
no meu aqui fiz algumas alteracoes que seria interessante na versao do sistema
ter um flag que diz se envia ou nao email, pois tenho uma makina que nao vai enviar email, so fazer backup do banco postgres
nesta maquina so tem postgresql instalado
entao quando rodei ele deu erro em algumas variaveis do mysql
tive que comentar 2 variaveis do mysql
#_mysqldump=$(which mysqldump)
#_mysql=$(which mysql)
nor esto funcionou perfeito
10x
5 abril 2006, 12:45 pmanselmo mendes:
OLÁ AMIGOS
EU baixei o arquivo, mas acho que não tenho o programa para rodar essa rotina é necessário algum programa especial, pois vi que não é executável
8 maio 2010, 8:42 amJosé Morelli Neto:
Olá Anselmo,
O script em questão roda apenas em ambientes Unix (Linux/FreeBSD). Quem sabe ele até possa rodar em windows, desde que você instale o cygwin, mas será necessário ajustar o script para este ambiente.
8 maio 2010, 10:48 amFábio Telles:
Você tem que tomar muito cuidado se estiver utilizando apenas o Dump como estratégia de backup. Quando você faz isto, está abrindo mão de um recurso importantíssimo que é o PITR (Point In Time Recovery).
Escrevi um pouco sobre o assunto estes dias:
http://www.midstorm.org/~telles/2010/05/06/dump-nao-e-backup/
Espero que ajude.
[]s
10 maio 2010, 4:40 pmFábio Telles
José Morelli Neto:
Opa Fábio, muito bom seu artigo, parabéns!
Realmente o pg_dump é muito lento para a restauração de grandes bases, assim como restauração de dados inseridos após o último dump, e apagados antes do próximo. Mas considerando que existem muitas empresas (até de médio e grande porte) que nem um dump diário fazem, acho que o script ajuda.
Já tinha visto que o postgres suporta o backup online (de archives/logs), mas ainda não precisei dele… mesmo assim, fica a sua ótima dica!
Abraço!
10 maio 2010, 5:12 pmNeto.
Diih:
Ai gente queria saber como faço pra copiar banco de dados para o pen drive.. terminei meu trabalho e nao queria deixar no pc da escola.. alguem pode me ajudar??
28 junho 2010, 10:18 pm