segunda-feira, 1 de novembro de 2010

Utilizando o gBak do Firebird para efetuar backup/restore

Utilizando o gBak do Firebird para efetuar backup/restore

Saiba quando e como usar o utilitário gBak do Firebird para a exeução de backup/restore.
STAVARENGO, RAFAEL
Programador de sistemas com 8 anos de experiência, integrante da equipe editorial da revista Clube Delphi. Domínio em Java, PHP e UML. Sólido conhecimento em Design Patterns e metodologias ágeis. Graduado em Análise e Desenvolvimento de Sistemas pela...

Ver space do autor


Estatísticas:
Visualizações:
26326
Favoritado:
10 vez(es)
Conteúdo:
Didática:
Utilidade:
8 0
votos: 8

Serviços:
Inclua seu próprio artigo! (ajuda)
Inclua um comentário
Adicionar aos Favoritos
Marcar como lido/assistido
Incluir anotação pessoal (ajuda)
RSS Feeds
Versão para impressão



Utilizando o gBak do Firebird para efetuar backup/restore



Todos os bancos de dados existentes estão sujeitos a erros e perca de dados, portanto, se torna essencial a geração do backup da base de dados. Neste artigo nós veremos como criar backup através do utilitário gBak do Firebird.



Existem duas maneiras de se criar um backup: Através do utilitário gBak (por linha de comando) e através da API de serviços. As duas formas, de modo geral, fazem exatamente a mesma coisa, porém, com o gBak você pode salvar o arquivo de backup na máquina onde o gBak foi executado, indiferentemente se essa máquina é o servidor ou terminal. Através da API de serviços isto não é possível: Você poderá executar o backup em qualquer computador, mas o arquivo de backup só poderá ser salvo no servidor. Isso acontece porque quando você executa o backup pela API de serviços quem executa o backup é o próprio servidor.



Por outro lado, através da API de serviços você pode colocar a rotina de backup integrado ao seu sistema. Caso você queira aprender como fazer um backup no firebird utilizando a API de serviços utilizando o Delphi veja este outro artigo: http://www.devmedia.com.br/articles/viewcomp.asp?comp=4885.



O utilitário gBak fica dentro da basta Bin, no diretório onde você instalou o firebird. Como a maioria dos programas utilizados por linha de comando, o gBak também utiliza de parâmetros para a configuração do backup a ser gerado. Veja na tabela abaixo os parâmetros existentes e o que significa cada um.



Parâmetro


Abreviação


Descrição

-USER





Nome do usuário que fará o backup/restore.

-PASSWORD


-PAS


Senha do usuário que vai executar o backup/restore.

-ROLE


-RO


Role que será usado para conectar a base de dados.

-BACKUP_DATABASE


-B


Gera um backup.

-CREATE_DATABASE


-C


Cria um banco de dados a partir de um arquivo de backup já pronto.

-GARBAGE_COLLECT


-G


Não realiza o processo de garbage collection durante o processo de backup, porém, é recomendado que você sempre realize o garbage collect, pois o mesmo é responsável por excluir as versões de registro que não são mais necessárias.

-INACTIVE


-I


Desativa os índices durante o processo de restauração do banco de dados.

-IGNORE


-IG


Ignora os possíveis erros de checksum.

-NO_VALIDITY


-N


Restaura o banco de dados sem fazer as validações de integridade.

-KILL


-K


Restaura um banco de dados, porém, não restaura os arquivos de espelho (shadow), do banco de dados.

-LIMBO


-L


Ignora todas as transações que por algum motivo não foram confirmadas e nem descartadas.

-MODE


-MO


Determina se o banco restaurado será atualizável (read_write), ou apenas leitura (read_only).

-META_DATA


-M


Faz backup apenas da estrutura do banco de dados, sem os dados contidos nele.

-NT





Cria um arquivo de backup que só poderá ser restaurado num computador que possua um processador compatível com o processador da máquina onde o backup foi gerado (backup não transportável).

-TRANSPORTABLE


-T


Cria um backup com os dados no formato XDR, ou seja, o backup poderá ser restaurado em máquinas que utilizem processadores diferentes do processador utilizado na máquina onde foi feito o backup (formato transportável).

-ONE_ATE_A_TIME


-O


Durante a restauração da base de dados será restaurada apenas uma tabela de cada vez.

-PAGE_SIZE


-P


Determina o tamanho das paginas que o banco restaurado usará

-REPLACE_DATABASE


-R


Especifica que caso o banco informado para o restore já exista, ele deverá ser sobreposto.

-SERVICE


-SE


Usa a API de serviço para executar o backup o que fará com que o servidor faça o backup e não o gBak. Como já foi dito anteriormente, esse processo não permitira que o arquivo de backup seja salvo em uma máquina que não seja o servidor.

-USE_ALL_SPACE


-USE_


Recomendado para bases de dados que serão read only, visto que o tamanho do banco de dados pode diminuir consideravelmente, pois os 20% reservado em cada página do banco para uso posterior não serão usados.

-VERIFY


-V


Mostra na tela todo o processo que esta sendo executado no backup/restore.

-Y





Não mostra as mensagens de status ou se você informar o caminho de um arquivo, as mensagem serão armazenadas nele.

-BUFFERS


-BU


Tamanho (em bytes), do cache para o banco que esta sendo restaurado.

-CONVERT


-CO


Grava as tabelas externas do banco de dados dentro do backup como se fossem tabelas internas.

-Z





Mostra a versão do gBak.

-?





Mostra esta lista de comando.



Vamos aos exemplos de como executar um backup. Como o utilitário gBak é um utilitário de linha de comando, todos os exemplos abaixo devem ser digitados através do prompt de comando.



Primeiro exemplo – Gerando um backup

gbak –user SYSDBA –pas masterkey 172.16.20.14:c:\dados.fdb c:\backup.fbk



Neste primeiro exemplo é criado um backup da base de dados dentro do drive C: do computador onde o gBak foi executado. A base de dados que esta sendo feito o backup se encontra no servidor 172.16.20.14, no caminho C:\Dados.fdb. Os parâmetros –user e –pas informam respectivamente o nome e a senha do usuário que esta se conectando a base de dados para executar o backup.



Segundo exemplo – Restaurando um backup

gbak –user SYSDBA –pas masterkey –r –p 4096 -o c:\backup.fbk 172.16.20.14:c:\dados.fdb



Neste exemplo, será gerado um banco no caminho em C:\Dados.fdb dentro do servidor 172.16.20.14. Esse novo banco de dados, terá as paginas com o tamanho de 4093 bytes (4 KB) e caso o banco C:\Dados.fdb já exista, ele será sobrescrito. Alem disso o comando -o informa que durante o processo de restauração, apenas uma tabela por vez será restaurada, o que é útil em caso onde o backup possa estar corrompido.



Agora você já sabe como usar o utilitário para executar backup/restore no Firebird. Lembre-se de que você nunca deve deixar de fazer backup para evitar futuras “dores de cabeça”.