Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — Quadrix 2026

Banco de DadosPostgreSQL
Código
qa432968
Banca
Quadrix
Órgão
CRF PR
Ano
2026
Cargo
Ana ( )
O Conselho Regional de Farmácia do Estado do Paraná (CRF‑PR) mantém um sistema corporativo que armazena dados cadastrais de profissionais, registros de empresas farmacêuticas, processos administrativos, multas e informações financeiras. O ambiente utilizou PostgreSQL em servidores Linux, com exigência de alta disponibilidade, controle de acesso com base em papéis, auditoria de operações sensíveis, rotinas de backup automatizadas e otimização de desempenho para relatórios estatísticos enviados ao Conselho Federal. A equipe de TI precisou garantir a continuidade dos serviços, conformidade com normas de proteção de dados e integridade das informações institucionais.   Com base nessa situação hipotética, julgue o item a seguir.   A habilitação do parâmetro synchronous_commit = off no ambiente do CRF garante que todas as transações sejam confirmadas somente após a gravação dos dados no servidor primário e em todas as réplicas síncronas, aumentando a consistência dos registros financeiros.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

synchronous_commit no PostgreSQL

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.

1on (padrão)
Espera WAL no primário
Espera réplicas síncronas
2remote_apply
Espera réplicas aplicarem
3remote_write
Espera réplicas receberem
4local
Espera só WAL do primário
5off
Não espera WAL
Confirma imediatamente
Prioriza desempenho
synchronous_commit
LEVELsoulevel.com.br
synchronous_commit: on (padrão) (Espera WAL no primário, Espera réplicas síncronas); remote_apply (Espera réplicas aplicarem); remote_write (Espera réplicas receberem); local (Espera só WAL do primário); off (Não espera WAL, Confirma imediatamente, Prioriza desempenho)

Item — ❌ ERRADO

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