Pular para o conteúdo principal

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

Banco de DadosPostgreSQL
Código
qa432966
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.

 

Utiliza‑se o comando pg_dumpall ‑U postgres > backup_crf.sql para realizar um backup lógico completo (global) do banco do CRF, incluindo funções, permissões e estruturas.

  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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”.

Backup lógico no PostgreSQL: pg_dumpall

Gabarito: letra C (CERTO). O comando pg_dumpall -U postgres > backup_crf.sql é, de fato, a ferramenta correta para realizar um backup lógico completo (global) de um cluster PostgreSQL, pois ele exporta não apenas os dados e estruturas de todos os bancos, mas também objetos globais como funções, permissões (papéis/roles) e tablespaces — exatamente o que o enunciado descreve. A alternativa está correta porque o pg_dumpall é o utilitário específico para esse fim, enquanto o pg_dump (sem o sufixo "all") faria o backup de um único banco, sem incluir os objetos globais do cluster.

O PostgreSQL oferece duas ferramentas principais para backup lógico: pg_dump e pg_dumpall. A diferença fundamental entre elas é o escopo do que é exportado. O pg_dump é utilizado para fazer backup de um único banco de dados específico, incluindo suas tabelas, dados, funções, visões, etc., mas não inclui os objetos globais do cluster, como papéis (roles), permissões de nível de cluster e tablespaces. Já o pg_dumpall é a ferramenta projetada para fazer backup de todo o cluster PostgreSQL, ou seja, de todos os bancos de dados e, crucialmente, dos objetos globais que são compartilhados entre eles. É por isso que o comando do enunciado, pg_dumpall -U postgres > backup_crf.sql, é a forma correta de gerar um backup lógico completo e global, incluindo funções, permissões e estruturas de todos os bancos do cluster.

A distinção entre pg_dump e pg_dumpall é um dos pontos mais cobrados em provas de banco de dados. A pegadinha clássica é apresentar o pg_dump como se ele fizesse o backup global, ou apresentar o pg_dumpall como se ele fizesse o backup de um único banco. Nesta questão, o enunciado descreve corretamente a função do pg_dumpall, e a alternativa reflete essa função. É importante notar que o backup gerado por pg_dumpall é um arquivo de script SQL, que pode ser restaurado com o comando psql, e que ele também inclui comandos para recriar os papéis e as permissões, garantindo a integridade do ambiente como um todo.

Na prática, para restaurar um backup feito com pg_dumpall, o administrador usaria o comando psql -f backup_crf.sql postgres, que executaria todos os comandos SQL do arquivo, recriando os bancos, as tabelas, os dados, as funções e, principalmente, os papéis e as permissões. Essa é a razão pela qual o pg_dumpall é a ferramenta certa para uma estratégia de backup que visa a recuperação completa do ambiente, como a exigida no cenário do CRF-PR, que menciona "controle de acesso com base em papéis" e "auditoria de operações sensíveis".

A banca explora a confusão entre pg_dump e pg_dumpall. O candidato que memorizou que "pg_dump faz backup" pode marcar como errado, pensando que o comando deveria ser pg_dump. No entanto, a questão especifica "backup lógico completo (global)", o que é a assinatura do pg_dumpall. A palavra "global" é o termo-chave que decide a questão: ela indica que o backup deve incluir os objetos que são globais ao cluster, e não apenas os de um banco específico. Portanto, a alternativa está correta.

Backup lógico PostgreSQL
  • 1pg_dump
    • Um único banco
    • Tabelas, dados, funções
    • Não inclui objetos globais
  • 2pg_dumpall
    • Todo o cluster
    • Inclui papéis (roles)
    • Inclui permissões
    • Inclui tablespaces
    • Restauração: psql -f backup.sql
LEVEL · soulevel.com.br

Alternativa C — ✅ CERTOGABARITO

A alternativa está correta porque o comando pg_dumpall -U postgres > backup_crf.sql é exatamente a forma de realizar um backup lógico completo (global) de um cluster PostgreSQL. O pg_dumpall exporta todos os bancos de dados do cluster, bem como os objetos globais, como papéis (roles), permissões e tablespaces, que são justamente as funções, permissões e estruturas mencionadas no enunciado. O redirecionamento > backup_crf.sql salva a saída em um arquivo de script SQL, que é o formato padrão para backups lógicos. O -U postgres especifica o usuário superusuário, que tem privilégios para exportar todos os objetos do cluster. Portanto, a afirmação está tecnicamente correta e atende à necessidade de um backup completo do ambiente.

Gabarito: letra C (CERTO).

Link permanente: /questoes/qa432966