Um sistema de banco de dados baseado em PostgreSQL possui três servidores, sendo um primário e dois em espera (standby). O servidor primário executa comandos de escrita e leitura (readonly), enquanto os servidores em standby resolvem apenas requisições de leitura. A replicação é realizada utilizando-se write-ahead log (WAL). A cada atualização do banco de dados do servidor primário, um WAL é encaminhado diretamente para os dois servidores em standby. O processo de replicação se encerra após o recebimento de respostas de todos os servidores em standby. Com relação ao sistema de banco de dados em questão, é correto afirmar que
- A)possui balanceamento de carga, os servidores estão conectados na configuração multiespera (multi-standby) e a replicação do banco de dados é síncrona.
Certa, porque há dois standbys, leitura distribuída entre eles e a transação só se conclui após confirmação de ambos, o que caracteriza replicação síncrona.
- B)possui balanceamento de carga, os servidores estão conectados na configuração multiespera (multi-standby) e a replicação do banco de dados é assíncrona.
Errada, porque a confirmação descrita no enunciado depende da resposta dos standbys, então a replicação não é assíncrona.
- C)não possui balanceamento de carga, os servidores estão conectados na configuração cascata e a replicação do banco de dados é assíncrona.
Errada, porque o enunciado fala em envio direto do primário para os dois standbys, e não em replicação em cascata.
- D)não possui balanceamento de carga, os servidores estão conectados na configuração multiespera (multi-standby) e a replicação do banco de dados é síncrona.
Errada, porque há balanceamento de carga pelos servidores de leitura e a configuração é de multi-standby; além disso, a replicação é síncrona, não o contrário.
- E)possui balanceamento de carga, os servidores estão conectados na configuração cascata e a replicação do banco de dados é síncrona.
Errada, porque a topologia não é cascata: o primário envia WAL diretamente aos dois standbys, sem encadeamento entre eles.
Gabarito: A
A questão descreve uma arquitetura clássica de replicação em PostgreSQL com um servidor primário e dois servidores em espera, também chamados de standby. O primário atende escrita e leitura, enquanto os standbys ficam voltados para leitura e recebem as mudanças via WAL (Write-Ahead Log), que é o registro usado pelo PostgreSQL para manter consistência e replicar alterações. O ponto-chave aqui é que o WAL é enviado diretamente para os dois standbys e o processo só termina quando o primário recebe resposta de ambos. Isso indica replicação síncrona, porque a confirmação da transação depende do retorno dos servidores de destino. Se fosse assíncrona, o primário poderia confirmar a transação antes do standby responder, o que não acontece no enunciado. Também há conexão com a ideia de multi-standby, já que há mais de um servidor em espera recebendo replicação do primário. E existe balanceamento de carga, porque os servidores em standby podem atender requisições de leitura, distribuindo esse trabalho e aliviando o primário. Em provas, a banca costuma misturar esses conceitos para ver se você separa replicação, tipo de sincronismo e divisão de leitura. Então, o gabarito A está correto porque o cenário tem balanceamento de carga, configuração multiespera (multi-standby) e replicação síncrona. Em PostgreSQL, isso se encaixa perfeitamente na lógica de standby para leitura e confirmação da atualização apenas após a resposta dos servidores replicadores.