Esta página foi traduzida por máquina. Leia o original em inglês. English

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.

Replicação assíncrona do Firebird: segmentos de diário do mestre para a réplica
Assíncrono: segmentos em disco, aplicados em segundo plano.
Replicação síncrona do Firebird: o mestre grava diretamente na réplica
Síncrono: lotes no commit por uma conexão ativa.

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

  1. Configure o banco de dados como mestre.
  2. Crie um arquivo de réplica (nbackup ou "Reinicializar banco de dados de réplica").
  3. 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.

Console do HQbird pronto para adicionar um banco de dados para replicação

Adicione o banco de dados: apelido mais caminho do arquivo, não um alias - aliases não são replicados.

Diálogo de adicionar banco de dados com caminho de arquivo explícito

Abra a replicação pelo ícone de cabeçalho do banco de dados. Escolha MestreAssíncrono → Salvar. Reinicie o Firebird (ou todas as conexões Classic) para que os parâmetros sejam carregados na primeira conexão.

Configurações básicas de replicação assíncrona do mestre
Configuração básica do mestre.
Parâmetros completos de replicação assíncrona do mestre
Mais >> - os padrões são adequados em uma instalação limpa.
  • 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}.LogArch ao 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.

Arquivos de segmento de replicação em disco

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.

Configurações básicas de réplica assíncrona
Configurações detalhadas de réplica assíncrona

Etapas - replicação síncrona

  1. Pare o Firebird.
  2. Copie o arquivo mestre, alterne-o para o modo réplica, copie para o(s) servidor(es) de réplica.
  3. Configure o(s) servidor(es) de réplica no FBDataGuard.
  4. Inicie a(s) réplica(s) antes do mestre.
  5. 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.

Configuração de replicação síncrona

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.

disable_on_error true para testes de replicação
Trabalho de monitoramento de log de replicação no HQbird

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.

gstat -h mostrando o GUID do banco de dados
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.