delphi-gbakfirebird
GBAKFirebird é utilitário desenvolvido em Delphi para Windows com interface gráfica que realiza backup/restore em bancos de dados Firebird.
- Active · last change 11-3-2026
- ★ 7 on GitHub
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
.fdbpara.fbk, com detecção automática da versão do banco pelo arquivo (ODS). - Restore de
.fbkpara.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
-IGNOREnem-LIMBO: se o banco tiver corrupção, a operação é abortada.
Estrutura do projeto
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.dfmAs 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.exedo Firebird 3.0 para a pasta30\.
Compilação
- Abra
Source\GBAKFirebird.dprojno Delphi. - Selecione a configuração Release e a plataforma Win32.
- Compile (
Shift+F9). O executável é gerado na raiz do projeto, junto das pastas de versão.
Uso
Backup
- Selecione o banco em Banco de Dados (FDB). A Versão Backup é ajustada automaticamente conforme a versão detectada no arquivo.
- Escolha a Versão Restore desejada (usada para informar o fluxo e no restore seguinte).
- Marque ou desmarque Limpeza Lixo e Paralelo conforme a necessidade.
- Clique em Backup. O
.fbké gerado na mesma pasta e com o mesmo nome do banco.
Restore / conversão
- Selecione o arquivo em Arquivo de Backup (FBK) (preenchido automaticamente após um backup bem-sucedido).
- Confira a Versão Backup (origem) e a Versão Restore (destino), e o Page Size.
- Marque, se necessário, Fix Charset e Sem Triggers.
- 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:
gbak -BACKUP -VERBOSE -TRANSPORTABLE [-G] [-PARALLEL 4] [extras] "banco.fdb" "banco.fbk.tmp" -USER SYSDBA -PASSWORD masterkeyRestore:
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 masterkeyConfigurações
As últimas opções usadas (arquivos, versões, page size, checkboxes e parâmetros extras) são salvas ao fechar o programa em:
HKEY_CURRENT_USER\Software\GBAKFirebirdLimitaçõ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.

