Questão de Banco de Dados — PostgreSQL — Quadrix 2026
- Código
- qa432968
- Banca
- Quadrix
- Órgão
- CRF PR
- Ano
- 2026
- Cargo
- Ana ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO (letra E). A afirmação inverte completamente o efeito do parâmetro synchronous_commit = off: com ele desabilitado, o PostgreSQL não espera a gravação dos dados no WAL (Write-Ahead Log) do servidor primário nem em qualquer réplica síncrona antes de confirmar a transação — o servidor responde ao cliente imediatamente, sem aguardar a durabilidade. Isso reduz a consistência e a durabilidade dos dados, priorizando desempenho e latência, exatamente o oposto do que o enunciado afirma.
O synchronous_commit é um parâmetro de configuração do PostgreSQL que controla o momento em que o servidor primário considera uma transação como confirmada (commit) em relação à gravação do WAL. O WAL é o log de escrita antecipada que garante a durabilidade dos dados: antes de informar ao cliente que a transação foi confirmada, o servidor precisa garantir que as informações estejam seguras no WAL, para que, em caso de falha, os dados possam ser recuperados.
Os valores possíveis para synchronous_commit são:
on (padrão): o servidor espera a gravação do WAL no disco do primário antes de confirmar. Se houver réplicas síncronas configuradas, ele também espera a confirmação delas.
remote_apply: espera a gravação no WAL do primário e que as réplicas síncronas tenham aplicado as mudanças (não apenas recebido).
remote_write: espera a gravação no WAL do primário e que as réplicas síncronas tenham recebido os dados (mas não necessariamente gravado em disco).
local: espera apenas a gravação no WAL do primário, sem aguardar réplicas.
off: não espera a gravação no WAL do primário nem em réplicas. A transação é confirmada imediatamente, mesmo que os dados ainda não estejam seguros em disco.
A lógica por trás do synchronous_commit = off é priorizar a performance (menor latência) em detrimento da durabilidade. Em cenários onde a perda de algumas transações recentes em caso de falha do servidor é aceitável (por exemplo, logs de baixa criticidade), essa configuração pode ser útil. No entanto, para registros financeiros de um Conselho Regional de Farmácia, onde a integridade e a durabilidade são críticas, essa configuração seria inadequada, pois aumentaria o risco de perda de dados.
A pegadinha da banca está em inverter o sentido do parâmetro: ela afirma que off aumenta a consistência, quando na verdade ele a diminui. O candidato que sabe que synchronous_commit está relacionado à durabilidade pode ser induzido a pensar que off significa "mais segurança", mas é exatamente o contrário.
Para garantir a consistência e a durabilidade em um ambiente com réplicas síncronas, o valor correto seria on (ou remote_apply para máxima segurança). O off é uma escolha de desempenho que sacrifica a garantia de que os dados serão preservados em caso de falha.
A afirmação está errada porque descreve o comportamento oposto ao do synchronous_commit = off. Com essa configuração, o PostgreSQL não aguarda a gravação no WAL do primário nem nas réplicas síncronas antes de confirmar a transação. Isso reduz a consistência e a durabilidade, priorizando a velocidade de resposta. Para garantir que a transação só seja confirmada após a gravação no primário e nas réplicas, o parâmetro deveria estar habilitado (on), não desabilitado (off).
Gabarito: letra E (ERRADO).
Link permanente: /questoes/qa432968