HQbird Replicação
Replicação nativa mestre-escravo no HQbird Enterprise: DML e DDL, sem triggers, chaves únicas ou primárias em tabelas replicadas. 100% compatível com Firebird 2.5-5.0 - troque os binários sem backup/restore. Uma licença cobre um mestre e uma réplica; réplicas adicionais são vendidas separadamente.
Assíncrono vs síncrono
Assíncrono geralmente é a escolha certa para produção.
Assíncrono (recomendado)
O mestre registra as alterações confirmadas em arquivos de segmento; as réplicas os puxam e aplicam em segundo plano. O flush padrão é de 90 segundos (frequentemente ajustado para 15-30). A réplica pode ser recriada online; não é necessário parar o mestre para iniciar. Adequado para nuvem ou links de alta latência. O atraso pode aumentar sob carga pesada.
Síncrono
O mestre grava as alterações confirmadas diretamente na(s) réplica(s). Atraso de ~1-2 segundos; requer um caminho estável de ~1 Gbps. A réplica é somente leitura (com ressalvas). Recriar uma réplica exige parar o mestre. Use para failover personalizado (3+ nós), descarregar leituras ou misturado com assíncrono.
Instalação
Instale o HQbird Server com Firebird no mestre e na réplica. Windows: HQbirdServer2024.exe (2.5-5.0). As ferramentas administrativas são opcionais para replicação. Linux: guia de instalação. Registre com uma licença de teste ou completa. O Guia do Usuário §2 cobre a configuração do servidor.
Firebird 2.5: O HQbird instala o SuperClassic. Se o cabeçalho do banco de dados tiver uma contagem grande de page buffers, o desempenho pode sofrer. Defina buffers como 0 para que o firebird.conf prevaleça:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\caminho\database.fdb
Etapas - replicação assíncrona
- Configure o banco de dados como mestre.
- Crie um arquivo de réplica (
nbackupou "Reinicializar banco de dados de réplica"). - Configure o servidor de réplica.
Etapa 1 - Mestre
Abra http://127.0.0.1:8082 (a porta é configurável). Login admin / senha forte. Confirme que o widget Servidor ativo mostra Firebird 2.5/3.0/4.0/5.0 HQbird.
Adicione o banco de dados: apelido mais caminho do arquivo, não um alias - aliases não são replicados.
Abra a replicação pelo ícone de cabeçalho do banco de dados. Escolha Mestre → Assíncrono → Salvar. Reinicie o Firebird (ou todas as conexões Classic) para que os parâmetros sejam carregados na primeira conexão.
- Diretório de log - segmentos operacionais, padrão
${db.default-directory}\ReplicationLog. Gerenciado pelo mecanismo; deixe como está. - Diretório de arquivo de log - segmentos arquivados, padrão
${db.path}.LogArchao lado do banco de dados. - Substituir comando de arquivamento de log - deixe vazio.
- Forçar flush de dados confirmados - padrão de 90 segundos.
Você deve ver arquivos rotativos no diretório de log imediatamente após gravações e, em seguida, segmentos arquivados após commit/timeout. Não toque nos segmentos operacionais. Copiar arquivos para a réplica: compartilhamento de rede ou FTP/SSH.
Etapa 2 - Arquivo de réplica inicial
A partir do HQbird 2018 R2, Reinicializar banco de dados de réplica cria uma cópia ao lado do mestre, nomeada como employee30.fdb.17-Abr-2018_142507.4replica. Ou use nbackup sem parar o mestre.
Etapa 3 - Servidor de réplica
Registre a réplica no FBDataGuard após ela ter um GUID de réplica. A configuração necessária é a pasta dos segmentos arquivados. Salve e reinicie o Firebird. Os padrões são importados de uma pasta ao lado da réplica; segmentos processados são excluídos. Não misture arquivos de bancos de dados diferentes em uma mesma pasta.
Etapas - replicação síncrona
- Pare o Firebird.
- Copie o arquivo mestre, alterne-o para o modo réplica, copie para o(s) servidor(es) de réplica.
- Configure o(s) servidor(es) de réplica no FBDataGuard.
- Inicie a(s) réplica(s) antes do mestre.
- Configure o mestre e, em seguida, inicie o mestre.
Mais tempo de inatividade do que assíncrono: a réplica deve estar online antes do mestre iniciar. Exemplo de réplica remota: servidor replicaserver, caminho /data/test2.fdb. Na réplica, gfix -replica {guid-do-mestre} é suficiente além dessa cópia.
Testes em um sistema de produção
Defina disable_on_error como true para que um erro de replicação desative a replicação e o mestre continue atendendo. Re-inicialize a partir de um log limpo após corrigir o erro. Ative o trabalho Log de replicação no FBDataGuard para erros e avisos.
Criar uma cópia de réplica com nbackup
Funciona online para assíncrono (e réplicas adicionais) sem parar o mestre. Ou pare o Firebird e copie o arquivo.
nbackup -l caminho_do_banco_de_dados -user SYSDBA -pass masterkey
copy caminho_do_banco_de_dados caminho_da_réplica
nbackup -n caminho_do_banco_de_dados -user SYSDBA -pass masterkey
nbackup -f caminho_da_réplica
gfix caminho_da_réplica -replica {DATABASEGUID} -user SYSDBA -pass masterkey
DATABASEGUID é o id único do mestre de gstat -h. Se estiver ausente, conecte uma vez com os binários do Firebird do HQbird e execute gstat -h novamente.
gfix disk:\caminho\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\caminho\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
{} vazio retorna o arquivo ao modo normal (leitura-gravação). Em uma réplica, você pode executar trabalho somente leitura (SELECT); não altere dados ou metadados.