Restauração de backup lógico no PostgreSQL
Gabarito: CERTO (letra C). O comando psql -U crf_admin -d crf_db < backup_crf.sql é uma forma válida de restaurar um backup lógico (arquivo de script SQL gerado pelo pg_dump) em um banco de dados já existente no PostgreSQL, pois o psql executa os comandos SQL contidos no arquivo redirecionado. A restauração via psql é o método padrão para backups no formato de script, conforme a documentação oficial do PostgreSQL.
O PostgreSQL oferece duas ferramentas principais para backup e restauração: pg_dump e pg_restore. O pg_dump gera um arquivo de backup que pode estar em formato de script SQL (texto puro) ou em formato binário (custom/archive). Quando o backup é gerado em formato de script SQL, a restauração é feita com o utilitário psql, que lê o arquivo e executa os comandos SQL nele contidos. Já quando o backup é gerado em formato binário, a restauração é feita com o pg_restore, que oferece mais opções de seleção de objetos e paralelismo.
No comando apresentado, psql -U crf_admin -d crf_db < backup_crf.sql, temos:
-U crf_admin: especifica o usuário do banco de dados (no caso, crf_admin).
-d crf_db: especifica o banco de dados de destino (no caso, crf_db).
< backup_crf.sql: redireciona o conteúdo do arquivo backup_crf.sql para a entrada padrão do psql, que o interpreta como comandos SQL.
Esse comando é equivalente a executar psql -U crf_admin -d crf_db -f backup_crf.sql, que também lê o arquivo e executa os comandos. A restauração via psql é adequada para backups em formato de script, que são os mais comuns quando se usa pg_dump sem a opção -Fc (formato custom).
É importante destacar que o banco de dados de destino (crf_db) deve existir antes da restauração, pois o psql não cria o banco de dados. Se o backup contiver comandos CREATE DATABASE, eles serão executados, mas o banco de dados de conexão já deve existir. No caso da questão, o enunciado afirma que o comando permite restaurar um backup lógico para um banco de dados já existente, o que está correto.
A pegadinha que a banca poderia explorar é confundir a restauração de backup lógico com a restauração de backup físico (como o pg_basebackup ou a cópia de arquivos de dados), que não é feita com psql. Mas a questão é direta: o comando apresentado é válido para restaurar um backup lógico em um banco existente.
Item — ✅ CERTO
O comando psql -U crf_admin -d crf_db < backup_crf.sql é uma forma correta de restaurar um backup lógico no PostgreSQL. O psql é o utilitário de linha de comando que executa comandos SQL, e o redirecionamento < faz com que o conteúdo do arquivo backup_crf.sql seja lido como entrada. Isso é exatamente o que se faz para restaurar um backup gerado pelo pg_dump em formato de script. O banco de dados crf_db já deve existir, e o usuário crf_admin deve ter permissão para executar os comandos. Portanto, a afirmação está correta.
Gabarito: letra C (CERTO).