---
title: "Alta disponibilidade do PostgreSQL com SafeKit: Instale o módulo postgresql.safe para failover"
canonical: "https://safekit.eviden.com/pt-pt/quick-install/safekit-quick-installation-guide-with-postgresql/"
description: "Implemente o módulo postgresql.safe para SafeKit para permitir a replicação síncrona em tempo real e o failover automático de PostgreSQL em Windows e Linux. Este guia orienta-o na configuração de um cluster sem SAN de 2 nós para aplicações críticas sem armazenamento partilhado."
category: "quick-install"
lang: "pt-pt"
topics: "Guia de instalação rápida de alta disponibilidade para PostgreSQL, Limitações de Alta Disponibilidade do SafeKit, Visão geral da solução SafeKit/PostgreSQL, Instalação da solução SafeKit/PostgreSQL em Windows e Linux (postgresql.safe), Configuração passo a passo da solução SafeKit/PostgreSQL, Demonstração da solução de espelho SafeKit"
---

# Alta disponibilidade do PostgreSQL com SafeKit: Instale o módulo postgresql.safe para failover {#postgresql-high-availability-with-safekit-install-the-postgresqlsafe-module-for-failover}

## Guia de instalação rápida de alta disponibilidade para PostgreSQL {#quick-guide}

Este guia explica como configurar um **cluster de espelhos** para PostgreSQL utilizando SafeKit, garantindo failover automático e replicação síncrona sem necessidade de armazenamento partilhado. 

Para obter ajuda, pode utilizar [SafeKit AI 🤖](https://safekit.eviden.com/pt-pt/pt-pt/resources/safekit-support/).

### 1. Visão geral

  * **Arquitetura:** Utiliza um sistema de dois nós (Primário/Secundário).
  * **Proteção de dados:** Implementa a replicação síncrona em tempo real para **zero perda de dados** (RPO=0).

### 2. Instalação

  * **Programas:** Instale o motor SafeKit em ambos os servidores.
  * **Módulo:** Descarregue o pré-configurado `postgresql.safe.safe` módulo de aplicação.

### 3. Configuração

  * **Consola Web:** Configure as pastas específicas que contêm os ficheiros PostgreSQL.
  * **Monitorização:** Comece a monitorizar e a proteger a aplicação PostgreSQL.

## Limitações de Alta Disponibilidade do SafeKit {#safekit-ha-limitations}

Limite / Requisito | Motivo e Impacto | Alternativa Recomendada  
---|---|---  
Tamanho da replicação: Alguns TB |  Tempo de ressincronização após uma falha ([etapa 3](https://safekit.eviden.com/architectures/file-replication-byte-level-with-failover-mirror-cluster/product/#safekit-mirror-cluster)): <br>• Rede de 1 Gb/s ≈ 3 horas / TB<br>• Rede de 10 Gb/s ≈ 1 hora / TB (dependendo do desempenho de escrita em disco)  |  • Utilizar [armazenamento partilhado externo](https://safekit.eviden.com/best-practises/san-vs-nas-shared-storage-for-a-failover-cluster/) (mais caro, mais complexo).    
Contagem de ficheiros: < 1.000.000 ficheiros |  • Desempenho do tempo de ressincronização após uma falha ([etapa 3](https://safekit.eviden.com/architectures/file-replication-byte-level-with-failover-mirror-cluster/product/#safekit-mirror-cluster)).<br>• Tempo necessário para verificar cada ficheiro entre ambos os nós.  |  • Colocar os vários ficheiros a replicar num disco rígido virtual / máquina virtual.<br>• Nesse caso, apenas os ficheiros que representam o disco rígido virtual / a máquina virtual serão replicados e ressincronizados.    
Capacidade de failover: ≤ 32 VMs |  • Cada VM é executada num módulo de espelho independente.<br>• Máximo de 32 módulos de espelho em execução no mesmo cluster.  |  • Utilizar um armazenamento partilhado externo e outra solução de clustering de VMs (mais caro, mais complexo).    
Arquitetura de rede: Rede LAN/VLAN entre locais remotos |  • Failover automático do [endereço IP virtual](https://safekit.eviden.com/best-practises/how-a-virtual-ip-address-works/) com 2 nós na mesma sub-rede.<br>• Boa largura de banda para a ressincronização ([etapa 3](https://safekit.eviden.com/architectures/file-replication-byte-level-with-failover-mirror-cluster/product/#safekit-mirror-cluster)).<br>•  Baixa latência para [replicação síncrona](https://safekit.eviden.com/best-practises/synchronous-replication-vs-asynchronous-replication/): tipicamente < 5 ms de RTT; valores superiores devem ser validados em função da taxa de escrita da aplicação.  |  • Utilizar um [balanceador de carga para o endereço IP virtual](https://safekit.eviden.com/best-practises/how-a-virtual-ip-address-works/) se os 2 nós se encontrarem em 2 sub-redes (suportado pelo SafeKit, especialmente na cloud).<br>• Utilizar soluções de cópia de segurança com replicação assíncrona para redes de alta latência.

 

## Visão geral da solução SafeKit/PostgreSQL {#overview-of-the-safekit--postgresql-solution}

A solução é descrita aqui: **💡[A alta disponibilidade mais simples do PostgreSQL: replicação síncrona e failover de 2 nós](<https://safekit.eviden.com/pt-pt/solutions/postgresql-high-availability-synchronous-replication-failover/>)**.

## Instalação da solução SafeKit/PostgreSQL em Windows e Linux (postgresql.safe) {#installation-of-the-safekit--postgresql-solution-on-windows-and-linux-postgresqlsafe}

### Pré-requisitos {#prerequisites}

  * Necessita do PostgreSQL instalado em 2 nós (máquinas virtuais ou servidores físicos).

### Instalação do pacote em Windows

  * Descarregue e instale a versão gratuita do SafeKit em 2 nós Windows.   
Nota: a versão gratuita inclui todas as funcionalidades do SafeKit. No final da avaliação, poderá ativar as chaves de licença permanentes sem desinstalar o pacote. 
  * Ao concluir a instalação do pacote, selecione **Set console credentials and firewall rules now** e configure uma palavra-passe para o **admin** utilizador da consola SafeKit.   
**Defina a mesma palavra-passe em todos os nós.**
  * Apagar das verificações antivírus **C:/safekit/** (o diretório de instalação padrão) e **todas as pastas replicadas** que vai definir.   
Os antivírus podem enfrentar desafios de deteção com o SafeKit devido à sua estreita integração com o sistema operativo, mecanismos de IP virtual, replicação em tempo real e reinicialização de serviços críticos. 

<a class="btn-download" href="/pt-pt/resources/safekit-free-trial/">Descarregue SafeKit (Windows) &gt;</a>

### Instalação do módulo em Windows

  * Descarregue o módulo postgresql.safe. O módulo é gratuito. Contém os ficheiros userconfig.xml e os scripts de reinicialização.
  * Colocar **postgresql.safe** sob **C:/safekit/Application_Modules/generic**.

<a class="btn-download" href="/wp-content/uploads/downloads_safekit/version-82/modules_windows/postgresql.safe" download="postgresql.safe">Download postgresql.safe (Windows) ></a> 

### Instalação do pacote em Linux

  * Instale a versão gratuita do SafeKit em 2 nós Linux. Nota: a avaliação gratuita inclui todas as características do SafeKit. No final da avaliação, poderá ativar as chaves de licença permanentes sem desinstalar o pacote.
  * Após o download do pacote safekit_xx.bin, execute-o para extrair o script rpm e safekitinstall e, em seguida, execute o **safekitinstall** roteiro
  * Resposta **sim** para configuração automática da firewall
  * Defina a palavra-passe da consola web e o utilizador padrão **admin**. **Defina a mesma palavra-passe em todos os nós.**

<a class="btn-download" href="/pt-pt/resources/safekit-free-trial/">Descarregue SafeKit (Linux) &gt;</a>

### Instalação do módulo em Linux

  * Descarregue o módulo postgresql.safe.   
O módulo é gratuito. Contém os ficheiros userconfig.xml e os scripts de reinicialização. 
  * Colocar **postgresql.safe** sob **/opt/safekit/Application_Modules/generic/**.

<a class="btn-download" href="/wp-content/uploads/downloads_safekit/version-82/modules_linux/postgresql.safe" download="postgresql.safe">Transferir postgresql.safe (Linux) &gt;</a> 

 

## Configuração passo a passo da solução SafeKit/PostgreSQL {#step-by-step-configuration-of-the-safekit--postgresql-solution}

### Pré-requisitos

  * Aplicação PostgreSQL instalada em 2 nós.
  * Total de dados replicados limitado a alguns terabytes — além disso, o tempo de ressincronização torna-se significativo.
  * Interligação mínima de 1 Gb/s entre nós (recomenda-se 10 Gb/s para uma ressincronização mais rápida).
  * O failover IP requer ambos os nós no mesmo LAN ou LAN estendido (L2) — redes L3 não suportadas com encaminhamento (exceto com 🛠️ [balanceadores de carga na nuvem](https://safekit.eviden.com/resources/safekit-user-guide-82/#Cloud)).

### 1. Inicie a consola SafeKit

  * Inicie a consola web num navegador num nó do cluster, conectando-se ao `http://localhost:9010`.
  * Introduza `admin` como nome de utilizador e palavra-passe definidos durante a instalação.

Também é possível executar a consola num browser numa estação de trabalho externa ao cluster.

⚠️ A configuração do SafeKit é feita em ambos os nós a partir de um único browser.

ℹ️ Para proteger a consola web, consulte 🛠️ [11\. Proteger o serviço web SafeKit](https://safekit.eviden.com/resources/safekit-user-guide-82/#https) no Manual do utilizador.

![Inicie a consola web SafeKit para configurar o cluster PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2024/03/01-login-large.png)

### 2.º Configure endereços de nós

  * Introduza os endereços dos nós IP, prima `Tab key` para verificar a conectividade e preencher os nomes dos nós. Se node1 ou node2 tiver uma cor vermelha, verifique a conectividade do browser com ambos os nós e verifique a firewall em ambos os nós para 🛠️ [ resolução de problemas](https://safekit.eviden.com/resources/safekit-user-guide-82/#Troubleshooting).
  * Em seguida, clique em `Save and apply` para guardar a configuração.
  * Verifique a mensagem `Success` ✅ em ambos os nós.
  * Se a configuração `Failure` ❌ ocorrer num nó, abra o acordeão ▼ desse nó e reveja as mensagens. Note que pode utilizar SafeKit AI 🤖 para obter assistência.

ℹ️ Se desejar, pode adicionar um novo `LAN and nodes` (primeiro ➕) para criar uma segunda pulsação e uma rede de replicação dedicada.

ℹ️ Se clicar em `Advanced configuration`, é apresentado o ficheiro `cluster.xml`. Este ficheiro é preenchido automaticamente pela consola e implementado nos nós.

![Introduza os nós do cluster PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2024/03/02-cluster-edit.png)

### 3.º Selecione um módulo

  * Em `New module`, clique no módulo `postgresql.safe`.

ℹ️ No banner azul na parte superior, 🛜 `node1` representa o nó de ligação da consola. Este nó retransmite pedidos para `node2` quando necessário.

ℹ️ A consola procura `xxx.safe` no diretório `Application_Modules/generic/` no nó de ligação (`node1`) se tiver colocado lá um módulo durante a instalação.

![Escolha o módulo para PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2024/03/04-module-new.png)

### 4.º Configure o módulo

  * Em `Module startup at boot`, escolha um arranque automático do módulo no arranque sem demora.
  * Em `Macros`/`SERVICES`, introduza os nomes dos serviços da sua aplicação, pela ordem de arranque, separados por vírgulas. Veja esta captura de ecrã para um exemplo visual dos serviços [Milestone XProtect 🖼️](https://safekit.eviden.com/wp-content/uploads/2025/05/milestone-services.png).
  * Em `Heartbeat networks`, deve ter uma rede de pulsação única na qual a replicação é feita. Se tiver adicionado um LAN privado no passo 2, pode configurar duas pulsações com o fluxo de replicação no LAN privado.
  * Em `Virtual IP addresses`, introduza um endereço IP virtual. Um endereço IP virtual é um endereço IP padrão na mesma rede IP (mesma sub-rede) que os endereços IP de ambos os nós.  
Os clientes aplicações devem ser configurados com o endereço IP virtual (ou o nome DNS associado ao endereço IP virtual).  
O endereço virtual IP é alternado automaticamente em caso de falha.
  * Em `Replicated directories`, defina os caminhos dos diretórios a replicar. Verifique se existem em ambos os nós e se contêm os dados da aplicação.  
A replicação de dados e de logs é essencial para uma base de dados.  
Pode criar diretórios replicados adicionais conforme necessário.  
Veja esta captura de ecrã para um exemplo visual da replicação [Milestone XProtect SQL 🖼️](https://safekit.eviden.com/wp-content/uploads/2025/05/milestone-replication.png).
  * No `Checkers`, poderá configurar verificadores, se necessário, como monitorização de processos, verificadores personalizados, TCP, ping ou verificadores de cérebro dividido.  
Por exemplo, se um nome de processo for apresentado em `Monitored processes/services`, será monitorizado com uma ação de reinicialização em caso de falha. A configuração de um nome de processo incorreto fará com que o módulo pare logo após o seu início.

ℹ️ Se clicar em `Advanced configuration`, é apresentado o ficheiro `userconfig.xml`. Este ficheiro é preenchido automaticamente pela consola e implementado nos nós com os scripts de reinicialização.

ℹ️ Numa implementação na nuvem, não precisa de configurar um endereço IP virtual em SafeKit. O IP virtual é gerido ao nível do balanceador de carga de cloud 🛠️ [](https://safekit.eviden.com/resources/safekit-user-guide-82/#Cloud).

ℹ️ Quando aplica a configuração SafeKit, o `startup type` dos serviços é automaticamente definido como `Manual` nos serviços Windows. Isto garante que os serviços não são iniciados automaticamente quando o sistema é inicializado, mas, em vez disso, são iniciados apenas quando o próprio módulo é iniciado (o mesmo se aplica ao Linux).

![Introduza as definições do módulo PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2025/05/05-module-mirror-edit-config-3.png)

### 5.º Edite scripts (opcional)

  * Este passo é opcional e pode ser ignorado na maioria dos casos, uma vez que os scripts de reinicialização já estão pré-configurados para reiniciar os serviços definidos no passo anterior.
  * Assim, clique diretamente em `Next step`.
  * `start_prim.ps1` inicia todos os serviços pela ordem especificada na lista `SERVICES`, enquanto `stop_prim.ps1` interrompe todos os serviços pela ordem inversa.
  * Além disso, o `start_prim.ps1` verifica a inicialização de cada serviço e pára o módulo se algum serviço não iniciar corretamente.

![Introduza as definições do módulo PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2026/09/28-module-edit-script.png)

### 6.º Encriptação de comunicação (opcional)

  * Mantenha a encriptação da comunicação entre os nós.

![Encriptação de comunicação do módulo PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2025/05/07-module-encryption-1.png)

### 7.º Guarde e aplique

  * `Save and apply` a configuração e os scripts em ambos os nós.

![Guarde e aplique a configuração do módulo PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2025/05/08-module-save-1.png)

### 8. Verifique a configuração bem-sucedida

  * Verifique a mensagem `Success` ✅ em ambos os nós e clique em `Monitor modules`.
  * Se a configuração `Failure` ❌ ocorrer num nó, abra o acordeão ▼ desse nó e reveja as mensagens. Note que pode utilizar SafeKit AI 🤖 para obter assistência.

⚠️ Em Linux, poderá receber um erro neste passo se os diretórios replicados forem pontos de montagem.🛠️ [Consulte SK-0030 para resolver o problema](https://github.com/FR-LES-SAFEKIT-DEV/safekit-packages/releases/download/v8.2/SafeKit_8.2_Knowledge_Base.pdf).

![Verifique o sucesso da configuração do módulo PostgreSQL](https://safekit.eviden.com/wp-content/uploads/2025/05/09-module-save-check-1.png)

### 9. Inicie o nó com os dados atualizados

  * Se o nó 1 tiver diretórios replicados atualizados, selecione-o e ⋯ `Force start` ▶ `As primary`.

Quando o nó 2 for iniciado, todos os dados serão copiados do nó 1 para o nó 2.

⚠️ Se fizer a escolha errada, corre o risco de sincronizar dados desatualizados em ambos os nós.

⚠️ Supõe-se também que a aplicação PostgreSQL é parada no nó 1 para que SafeKit instale os mecanismos de replicação e depois inicie a aplicação no script `start_prim`.

⚠️ Utilize `Start` para arranques subsequentes: SafeKit mantém o servidor mais atualizado. A inicialização do `As primary` é uma inicialização especial à primeira ou durante operações excecionais.

![Inicie como primário o nó PostgreSQL com os dados atualizados](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png)

### 10. Aguarde a transição para ALONE (verde)

  * O nó 1 deve atingir o estado ALONE (verde), o que significa que o IP virtual está configurado e que o script `start_prim` foi executado no nó 1.

⚠️ Se ALONE (verde) não for atingido ou se a aplicação não for iniciada, analise o porquê com o registo do módulo [ 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/24-module-log-script.png) do nó 1.

  * Clique no ícone 🔍 **log** de `node1` para abrir o registo do módulo e procurar mensagens de erro, como um verificador que deteta um erro e interrompe o módulo.
  * Clique em `start_prim` no registo: as mensagens de saída do script são apresentadas à direita e podem ser detetados erros, como um serviço iniciado incorretamente.
  * Utilize SafeKit AI 🤖 para obter assistência com mensagens de registo.

⚠️ Se o cluster estiver no estado `WAIT (red) not uptodate, STOP (red) not uptodate`, pare o nó WAIT e [ force o seu arranque como primário 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png).

![O primeiro nó PostgreSQL começa como primário e passa a ser ALONE](https://safekit.eviden.com/wp-content/uploads/2024/03/12-monitoring-alone-stop.png)

### 11.º Iniciar nó 2

  * ⋯ Nó `Start` 2 com o seu menu contextual.
  * Aguarde o estado SECOND (verde).

ℹ️ O nó 2 permanece no estado SECOND (laranja) enquanto ressincroniza os diretórios replicados (copia do nó 1 para o nó 2).

  * Isto pode demorar um pouco, dependendo do tamanho dos ficheiros a ressincronizar nos diretórios replicados e da largura de banda da rede.
  * Para ver o progresso da cópia, consulte o registo do módulo [ 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/27-module-log-reintegration.png) e as características de replicação [ 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/26-replication-resources-reintegration.png) do nó 2. Utilize o SafeKit AI 🤖 para obter assistência com as mensagens de registo.

![Inicie o nó PostgreSQL 2](https://safekit.eviden.com/wp-content/uploads/2024/03/13-monitoring-alone-stop-start.png)

### 12.º Verifique se o cluster está operacional

  * Verifique se o cluster está verde/verde com os serviços PostgreSQL em execução no nó PRIM e não em execução no nó SECOND.

Apenas as alterações dentro dos ficheiros são replicadas em tempo real neste estado.

⚠️ Os componentes clientes dos serviços PostgreSQL devem ser configurados com o endereço virtual IP. A configuração pode ser feita com um nome DNS (caso tenha sido criado um nome DNS e associado ao endereço virtual IP).

![O nó PostgreSQL 2 é SECOND (verde)](https://safekit.eviden.com/wp-content/uploads/2024/03/14-monitoring-prim-second.png)

### 13.º Teste

  * Pare o nó PRIM fazendo scroll para baixo no seu menu contextual e clicando em `Stop`.
  * Verifique se existe um failover no nó SECOND que se deve tornar ALONE (verde).
  * E com o Microsoft Management Console (MMC) em Windows ou com linhas de comando em Linux, verifique o failover dos serviços PostgreSQL (interrompido no nó 1 no script `stop_prim` e iniciado no nó 2 no script `start_prim`).

⚠️ Se ALONE (verde) não for atingido em node2 ou se a aplicação não for iniciada, analise o porquê com o registo do módulo [ 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/38-module-log-script-second.png) do nó 2.

  * Clique no ícone 🔍 **log** de `node2` para abrir o registo do módulo e procurar mensagens de erro, como um verificador que deteta um erro e interrompe o módulo.
  * Clique em `start_prim` no registo: as mensagens de saída do script são apresentadas à direita e podem ser detetados erros, como um serviço iniciado incorretamente.
  * Utilize SafeKit AI 🤖 para obter assistência com mensagens de registo.

⚠️ 

  * Se tudo estiver bem, inicie o node1, que irá voltar a sincronizar os diretórios replicados do node2.
  * Se algo correr mal, pare node2 e [ force o arranque como 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png) primário de node1, que será reiniciado com os seus dados localmente íntegros no momento da paragem.

ℹ️ Encontre mais detalhes, juntamente com vídeos, na Formação Online [SafeKit](https://safekit.eviden.com/resources/safekit-on-line-training/).

![Pare o módulo PostgreSQL no servidor PRIM](https://safekit.eviden.com/wp-content/uploads/2024/03/16-monitoring-prim-second-stop.png)

### 14. Suporte

  * Para obter suporte, leve 2 SafeKit `Snapshots` (2 ficheiros . zip), um para cada nó.

ℹ️ [Mais informações sobre o suporte aqui](https://safekit.eviden.com/resources/safekit-support/).

![Tire os instantâneos PostgreSQL para obter suporte](https://safekit.eviden.com/wp-content/uploads/2024/03/30-snapshots-mirror.png)

 

## Demonstração da solução de espelho SafeKit {#demonstration-of-the-safekit-mirror-solution}

### Vídeo SafeKit: Clustering ao nível da aplicação (8:47) {#demo-mirror-ha-cluster}

Neste vídeo, descubra como o SafeKit implementa um cluster de alta disponibilidade espelhado sem a complexidade de uma SAN. Embora esta demonstração utilize o Microsoft SQL Server, a solução funciona de forma idêntica para outras bases de dados e aplicações.

### Capítulos

  1. 🎬 [2 nós com SQL Server](https://www.youtube.com/watch?v=mGwEguDnnH0&t=0s) (0:32)
  2. 🎬 [Configure o cluster e o módulo mirror.safe](https://www.youtube.com/watch?v=mGwEguDnnH0&t=32s) (3:58)
  3. 🎬 [Iniciar e testar a replicação SQL, migração e failover em caso de falha](https://www.youtube.com/watch?v=mGwEguDnnH0&t=270s) (4:17)

### Implementação passo a passo

  * 🛠️ [Leia o guia sobre como configurar um cluster espelhado no Windows](https://safekit.eviden.com/quick-install/safekit-quick-installation-guide-for-a-new-windows-application-with-real-time-replication-and-failover/)
  * 🛠️ [Leia o guia sobre como configurar um cluster espelhado no Linux](https://safekit.eviden.com/quick-install/safekit-quick-installation-guide-for-a-new-linux-application-with-real-time-replication-and-failover/)

