Case Backup Banco Dados Firebird
O Firebird é um Excelente Banco de dados, confiável, gratuito e robusto. Em mais de 10 anos de utilização,não houveram históricos de perda de bancos devido a bugs ou problemas no mesmo, onde todos os caso foram relacionados a problemas de Hardware, Sistemas Operacionais ou ataques de hackers.
De qualquer forma, devido as diversas variadas causas, é recomendável a realização de backups frequentes para atenuarfuturos problemas. A intenção deste documento é ilustrar como configurar um ambiente de backup nos dois principais ambientes, Linux e Windows.
Noções de Bancos de Dados
Banco de dados é uma estrutura de arquivos, própria para armazenamento de dados. São compostos principalmente de tabelas, em que cada tabela possui uma estrutura de linhas e colunas.
Uma analogia interessante é comparar o banco de dados com um livro, onde temos diversas páginas. Em cada página, como no livro, são armazenados os dados. Para melhorar a performance de pesquisa, temos índices que funcionam como um sumário de um livro.
Bancos de Dados
Os produtos da Touch Comp trabalham com diversos banco de dados, separando as informações em cada, de acordo com a sua especificidade. Observe que nem todos necessitam de backup frequentes.
Você deve evitar ao máximo realizar cópias diretas dos bancos de dados, o copiar e colar. Isso porque o arquivo do banco de dados está constante modificação e já houve relatos de corrupção devido a este processo, ocasionado pelo sistema operacional. Logo você deve utilizar a ferramenta de backup e copiar o backup em si.
Banco de Dados | Função | Prioridade de Backup |
---|---|---|
mentor | Salva os inputs diários dos usuários, lançamentos, etc. É o principal banco de dados. | Altíssima, 1-2 vezes ao dia |
nfe | Salva os XML's das Notas fiscais, CTe's, Eventos, MDFe, NFSe, etc. | Alta, 1 vez ao dia |
log | Salva o log de alterações, deleções, inserções dos usuários | Média, 1 vez a semana |
binarydata | Salva os anexos, arquivos dos usuários, usando a função o ícone Clips | Média, 1 vez a semana |
versao | Salva as Atualizações | Não necessita Backup |
enderecos | Salva os dados de endereçamento, Códigos de IBGE | Não necessita Backup |
Windows
Se você utiliza Windows, as configurações de backup são bem mais simples do que no Linux. Mas por outro lado, podemos dizer que quase todos os problemas relatados por nossos clientes, ocorreram justamente em ambientes Windows.
Antes de começar baixe o programa SQL Server Boost, no ftp da Touch Comp ou diretamente no site do fornecedor. O mesmo é gratuito. O programa só possui idioma em Inglês. Após baixar, instale e execute o mesmo.
O programa automaticamente inicia-se com o Windows. Será possível configurar para que o mesmo seja executado em diversas opções, em intervalos de tempo, diário, etc.
Adicione uma Tarefa de Backup / Task
Clique em "Add" ou Adicionar para adicionar uma nova tarefa de Backup.
Selecione Firebird
Propriedades de Conexão
Informe as propriedades de Conexão. As mesmas podem variar de acordo com cada cliente.
"Server" Servidor: localhost ou IP do servidor onde está localizado o Banco de dados.
"Database" Banco de Dados: informe o nome no banco de dados. Verifique na Seção bancos de Dados.
"User" Usuário: SYSDBA
"Password" Senha: Conforme instalação, padrão "masterkey"
"Port" Porta: Conforme instalação, padrão 3051.
Propriedades de Backup
"Title" Titulo: Informe a Descrição do Backup, exemplo "Mentor".
"Description" Descrição: Detalhes adicionais relativos ao backup.
"Compress the Backup" Comprimir: Informe se deseja comprimir(Compactar, zipar) o backup para menor uso de espaço.
"Encrypt Backup" Criptografar: Informe se deseja criptografar o mesmo, definindo uma senha.
"Split Backup" Dividir Arquivo: Informe se deseja dividir o arquivo de backup.
"Delete Backup after Comperssion" Apagar arquivo apos Comprimir: Marque para apagar o arquivo original de backup(.fbk).
Propriedades do local de Backup
"Backup Physical Name" Nome do arquivo: Defina o nome do arquivo
"Paths" Caminho: Defina onde será salvo o backup.
"Copy of Backups": Copia do Backup: Defina os locais, caso deseja realizar uma cópia do backup em outros locais.
Backup em Nuvem
Nesta seção você pode definir para salvar o Backup em outros locais, na nuvem, como por exemplo em FTP, Amazon, Dropbox, etc.
Comandos de execução
Não deve ser informado ou modificado parametros nesta seção.
Propriedades de Execução de Backup
"Email Configuration" Configuração de Email: Você pode definir configurações para que seja avisado por email, quando o backup for executado.
"Delete Old Backups" Apagar Backups antigos: Defina se deseja apagar backups antigos, automaticamente.
"Schedule Configuration" Configuração Agendamento: Defina agendamento de Backups, quando o mesmo será realizado. Realize ao meno um backup ao dia. Recomendamos se possível duas vezes ao dia, na hora do almoço e ao final do expediente.
Revisão
Revise as configurações e confirme. Pronto seu backup está programado. Verifique e valide se o serviço está em execução, para ter certeza que o backup será realizado. Configura regularmente se os backups estão sendo salvos e se possível configure avisos por email.
Linux
No Linux não é necessário baixar programas para realizar a tarefa de backup. A forma mais simples é criar um sript de execução que faça o backup, e depois adicionar ao CRONTAB por exemplo para ser executado no intervalo de tempo que precisar.
Como existem diversas distribuições Linux, vamos mostrar sobre o Ubuntu e CRONTAB.
Baixe o script de exemplo. Observe que apenas o banco de dados do Mentor está mapeado. Replique o script para os demais bancos e agende no CRONTAB conforme a periodicidade que precisar ou a que foi sugerida pela Touch Comp:
http://touchcomp.ddns.me:81/programs/mentor/backup_database/scrpit_backup.sh
Restauração/Validação Banco de dados
A restauração de um banco de dados, se realiza o backup por um programa próprio do Firebird(programa que gera um arquivo fbk - Firebird Backup), é basicamente reconstruir este backup gerando um novo arquivo .fdb (Firebird Database). Se neste processo, não ocorrer erros, significa que o banco está integro. Caso ocorra qualquer erro, será necessário investigar o problema.
Se você utiliza apenas o backup do arquivo (copiar e colar), a checagem do banco de dados será possível apenas testando a conexão do sistema com o este arquivo, para verificar se há a conexão e se é possível logar. Vale ressaltar que neste caso, o banco de dados não será totalmente checado, como ocorre no primeiro caso. Veja a seção Noções de Banco de Dados. No primeiro backup, todas as páginas do "livro"/ banco de dados são visitadas e checadas. No segundo modelo isso não ocorre, afinal é realizado a cópia do arquivo em si. Portanto, pode ocorrer que determinas páginas estejam com problemas, mas como não foram visitadas para realizar o backup, o Firebird não saberá que as mesmas estão com problemas.
É possível rodar comandos de checagem do banco, como detalha o documento Case_Recuperacao_Banco_Dados_Firebird.
Benchmarks/Performance
É possível executar benchmarks para avaliar a performance dos servidores com o Firebird.
Uma das ferramentas para análise é o IBExpert Benchmark. Você pode baixá-lo diretamente do site da IBExpert. É bem intuitivo sua execução.
Outra ferramenta é a TPCC. Esta se caracteriza por alguns passos manuais via prompt de comando. Ela cria um ambiente figurativo, com diversos dados e operações. Sobre esta base é gerado ao final um indicador de Transações por Minuto. Para se ter um ponto de comparação, deve-se executar esta ferramenta em um bom computador, que será o de referencia, e depois executar em outro computador para comparar esta taxa. Você pode baixar os arquivos deste programa com o passo neste link: http://touchcomp.ddns.me:81/arquivos/programas/firebird/benchmark_firebird_TPCC.rar
Outras Informações
Para ver dados e informações de transações, sweep(coleta de lixo) no banco de dados, execute os comandos abaixo:
.\gstat.exe -h -user usuario_bd -pass senha_bd MENTOR.FDB
Para ver detalhes de tabelas e páginas:
.\gstat.exe -r -user usuario_bd -pass senha_bd MENTOR.FDB -t NOME_TABELAS
Para realizar o sweep, a coleta de lixo manualmente, execute o comando:
.\gfix.exe -sweep -user usuario_bd -pass senha_bd MENTOR.FDB