Mostrando postagens com marcador backup de banco de dados. Mostrar todas as postagens
Mostrando postagens com marcador backup de banco de dados. Mostrar todas as postagens

sexta-feira, 2 de outubro de 2009

GBU - Gerenciador de BackUps - versão 0.1.1 - Sistema para gerenciamento de backups em php+bash

===============================
[GBU - Gerenciador de BackUps]

Versão Beta 0.1.1
Licensa GPL
Autor André Oshiro Barcelos

GBU é um sistema para gerenciamento de backups feito em php+bash que realiza backup de servidores remotos via comando SCP.


===============================
[Tipos de backups realizados]

- arquivos
- diretórios
- dump de banco MySQL.


===============================
[Instalação]

Para instala-lo você deve possuir um servidor de backups com linux e o php5-cli instalado. Execute o arquivo do gbu com o comando install (ex.: php gbu.0-1-1.php install). Siga as mensagens que forem exibidas na tela.


===============================
[Cluster de storages de backup]

Você pode eleger mais de 1 servidor para efetuar os backups e manter a gerência centralizada, basta instalar o gbu em outros servidores e manter a lista de backups em 1 único.
Ex.:
Existem 2 servidores para backup: bkp1 e bkp2. Onde bkp1 é o nosso gerenciador e também storage; bkp2 é somente storage.
Efetuando "gbufes list" no bkp1

====================================================
ID HOST/ALVO STORAGE TIPO FREQ CIC ULTBKP
====================================================
1 web.aob.br#1 dire s:2 2 021009
/www/site /sto/hd01/ 000010
gbu/site 3600s

----------------------------------------------------
2 dns.aob.br#1 bkp2.aob.br dire s:6 2 021009
/etc/dns.conf /sto/hd01/gb 010203
u/dns 17s

----------------------------------------------------

Como podemos ver, nossa lista de backup está centralizada em bkp1.aob.br, e utilizamos o servidor bkp1.ufes.br como (quando oculto é assumido o host local) e o host bkp2.ufes.br como storage.


===============================
[Erros conhecidos]

- Erro ao copiar arquivos maiores de 60GB:
Se ao tentar efetuar backup de um arquivo/pasta maior que 60GB e o mesmo parar a cópia em 60GB, verifique o usuário gbufes criado na máquina de backup, o mesmo deve possuir a pasta /home/gbufes/.ssh criada com permissões de owner e grupo setadas para gbufes. Esse erro ocorre pois o fingerprint da máquina alvo não é escrito dentro do diretório /home/gbufes/.ssh, expirando a sessão do ssh a cada 1 hora e terminando a cópia do arquivo (cerca de 60GB são copiados em 1 hora numa rede FastEthernet).


===============================
[Ajude-nos a melhorar]
Para ajudar a melhorar o GBU, postem seus comentários, dúvidas, sugestões, bugs, ...


===============================
[Download GBU]

Clique aqui para baixar o GBU Versao 0.1.1

.

sexta-feira, 16 de janeiro de 2009

mysql ERROR 1036 (HY000) Table 'TABELA' is read only

Esse problema ocorreu quando fiz um backup do banco de dados (BANCO_TESTE) mysql simplesmente copiando os arquivos (/var/lib/mysql). O mysql deve ter algum mecanismo, que ainda não descobri o que é, que bloqueia a escrita nesses casos.
Para contornar o problema, procedi da seguinte maneira:

- Todos os passos devem ser efetuados com o usuário root do mysql.

- Fiz um dump do banco de dados BANCO_TESTE (a senha é grudado no "p" mesmo):
mysqldump -u root -psenha_root BANCO_TESTE > BANCO_TESTE-backup.sql

- Entrei no console mysql:
mysql -u root -psenha_root

- Apaguei o banco de dados problemático (atente-se ao ";" pois é sql):
drop database BANCO_TESTE;

- Criei um novo banco de dados:
create database BANCO_TESTE;

- Atribuí permissões ao usuário no novo banco de dados de qualquer domínio:
GRANT ALL PRIVILEGES ON 'BANCO_TESTE'.* TO 'usuario_do_banco_teste'@'%';

- Saí do console (\q é um parâmetro do console mysql):
\q

- Recuperei o backup:
mysql -u root -psenha_root BANCO_TESTE < BANCO_TESTE-backup.sql

- Pronto, a partir daí tudo funcionou perfeitamente.


[Dicas]

- Se for fazer backup de um banco de dados nunca copie os arquivos! Principalmente se for postgres (ele é mais seguro que o mysql, nem deixa executar o serviço).
Sempre utilize as ferramentas de dump: mysqldump para o mysql ou pg_dump para o postgres.