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: //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 <MODO>

-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 <CAMINHO>

 

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”.