Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

delphi-gbakfirebird

GBAKFirebird é utilitário desenvolvido em Delphi para Windows com interface gráfica que realiza backup/restore em bancos de dados Firebird.

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

GBAK Firebird

Ferramenta desktop (Delphi VCL) para backup, restore e conversão de versão de bancos de dados Firebird, usando o gbak oficial de cada versão. Usada no dia a dia do suporte para migrar bancos entre versões, fazer limpeza de lixo (garbage collection) e reconstruir bancos.

Funcionalidades

  • Backup de arquivos .fdb para .fbk, com detecção automática da versão do banco pelo arquivo (ODS).
  • Restore de .fbk para .fdb, com escolha de page size.
  • Conversão de versão (upgrade) entre Firebird 2.5, 3.0 e 5.0: backup com o engine de origem e restore com o engine de destino.
  • Limpeza de lixo durante o backup (coleta de lixo padrão do gbak), com opção de desligar para um backup mais rápido.
  • Correção de charset no restore (-FIX_FSS_METADATA / -FIX_FSS_DATA WIN1252), indicada ao migrar bancos 2.5.
  • Restore sem triggers de banco (-NODBTRIGGERS).
  • Processamento paralelo no Firebird 5.0 (-PARALLEL 4).
  • DB Info: mostra versão do engine, page size e tamanho físico do banco.
  • Log detalhado da execução do gbak em tempo real.
  • Alerta e confirmação obrigatória em caso de downgrade de versão (não suportado pelo gbak).

Versões suportadas

Combobox Pasta Engine Bancos (ODS)
Firebird 2.5 25\ Firebird 2.5 ODS 10 / 11 (FB 2.0, 2.1, 2.5)
Firebird 3.0 30\ Firebird 3.0 ODS 12
Firebird 5.0 50\ Firebird 5.0 ODS 13.0 (FB 4.0) e 13.1 (FB 5.0)

A versão do banco é identificada lendo o header do arquivo .fdb (ODS major/minor). Não é preciso ter um servidor Firebird instalado: cada pasta traz o gbak.exe e as bibliotecas do engine em modo embedded.

Segurança dos arquivos

A ferramenta foi pensada para nunca entregar um banco danificado ao cliente:

  • O backup e o restore são gravados primeiro em arquivo temporário (.fbk.tmp / .fdb.restore). O arquivo existente só é substituído depois que o gbak termina sem erros.
  • Em caso de falha, o arquivo parcial é excluído e o arquivo original é preservado sem alterações.
  • O resultado é validado pelo exit code do gbak e pela análise do log (ERROR, CORRUPT, CHECKSUM ERROR, WRONG PAGE TYPE, etc.).
  • O backup não usa -IGNORE nem -LIMBO: se o banco tiver corrupção, a operação é abortada.

Estrutura do projeto

pascal
GBAKFirebird\
├── GBAKFirebird.exe          Executável compilado
├── 25\                       gbak, isql e bibliotecas do Firebird 2.5
├── 30\                       gbak e bibliotecas do Firebird 3.0
├── 50\                       gbak, isql e bibliotecas do Firebird 5.0
└── Source\
    ├── GBAKFirebird.dpr      Projeto
    ├── GBAKFirebird.dproj
    ├── UBackupFirebird.pas   Formulário principal e toda a lógica
    └── UBackupFirebird.dfm

As pastas 25\, 30\ e 50\ precisam ficar ao lado do executável.

Requisitos

  • Windows (32 ou 64 bits). O executável é Win32.
  • Para compilar: Delphi 12 Athens (VCL, plataforma Win32).
  • Para usar o DB Info com bancos Firebird 3.0, copie o isql.exe do Firebird 3.0 para a pasta 30\.

Compilação

  1. Abra Source\GBAKFirebird.dproj no Delphi.
  2. Selecione a configuração Release e a plataforma Win32.
  3. Compile (Shift+F9). O executável é gerado na raiz do projeto, junto das pastas de versão.

Uso

Backup

  1. Selecione o banco em Banco de Dados (FDB). A Versão Backup é ajustada automaticamente conforme a versão detectada no arquivo.
  2. Escolha a Versão Restore desejada (usada para informar o fluxo e no restore seguinte).
  3. Marque ou desmarque Limpeza Lixo e Paralelo conforme a necessidade.
  4. Clique em Backup. O .fbk é gerado na mesma pasta e com o mesmo nome do banco.

Restore / conversão

  1. Selecione o arquivo em Arquivo de Backup (FBK) (preenchido automaticamente após um backup bem-sucedido).
  2. Confira a Versão Backup (origem) e a Versão Restore (destino), e o Page Size.
  3. Marque, se necessário, Fix Charset e Sem Triggers.
  4. Clique em Restore. O .fdb é gerado na mesma pasta e com o mesmo nome do backup, substituindo o banco existente somente se o restore for concluído com sucesso.

Parâmetros extras

O campo Parâmetros Extras é adicionado ao final da linha de comando do gbak (ex.: -SKIP_DATA "LOG_.*", -STATISTICS TDRW).

Comandos gerados

Backup:

pascal
gbak -BACKUP -VERBOSE -TRANSPORTABLE [-G] [-PARALLEL 4] [extras] "banco.fdb" "banco.fbk.tmp" -USER SYSDBA -PASSWORD masterkey

Restore:

pascal
gbak -CREATE -VERBOSE -REPLACE_DATABASE -PAGE_SIZE <n> [-FIX_FSS_METADATA WIN1252 -FIX_FSS_DATA WIN1252] [-NODBTRIGGERS] [-PARALLEL 4] [extras] "banco.fbk" "banco.fdb.restore" -USER SYSDBA -PASSWORD masterkey

Configurações

As últimas opções usadas (arquivos, versões, page size, checkboxes e parâmetros extras) são salvas ao fechar o programa em:

pascal
HKEY_CURRENT_USER\Software\GBAKFirebird

Limitações

  • O usuário e a senha estão fixos em SYSDBA / masterkey.
  • Downgrade de versão (ex.: 5.0 → 3.0) não é suportado pelo gbak. A ferramenta permite tentar, mas apenas após confirmação explícita.
  • Bancos Firebird 4.0 são processados com o engine do Firebird 5.0 (mesmo ODS 13).
  • O banco deve estar sem conexões ativas para que o arquivo destino possa ser substituído no restore.

Observação

Não versione arquivos de banco de dados (*.fdb, *.fbk) no repositório.