Uma manutenção de alto risco será feita no ambiente do Postgresql; no plano de manutenção está previsto, como a primeira tarefa, o becape de um banco de dados de nome dbonline. Nesse caso, assinale a opção que apresenta o comando que deverá ser utilizado para efetuar o becape do referido banco de dados para o arquivo de nome bkpdbonline.
- A)psql dbonline > bkpdbonline
Errada, porque psql é o cliente interativo do PostgreSQL, usado para executar comandos SQL, e não para gerar backup do banco.
- B)pgdump dbonline > bkpdbonline
Certa, porque a ferramenta apropriada para fazer backup lógico de um banco PostgreSQL é o pg_dump, que exporta o conteúdo para um arquivo.
- C)psql dbonline < bkpdbonline
Errada, porque o sinal de entrada redirecionada não transforma o psql em ferramenta de backup; além disso, psql não faz esse tipo de exportação.
- D)tar -cf bkpdbonline dbonline
Errada, porque tar apenas arquiva arquivos e diretórios do sistema operacional, não faz dump do conteúdo de um banco PostgreSQL.
- E)tar -czvf bkpdbonline dbonline
Errada, porque tar -czvf cria um arquivo compactado, mas continua sem realizar o backup lógico do banco de dados em si.
Gabarito: B
Quando você pensa em becape no PostgreSQL, a ideia principal é separar o que é ferramenta de banco de dados do que é comando de sistema. Para fazer a cópia lógica de um banco específico, o utilitário clássico é o pg_dump, que exporta o conteúdo do banco para um arquivo de backup. Isso é muito cobrado em prova porque a banca adora misturar comando SQL com comando de shell para ver se você não cai na armadilha. No caso da questão, a intenção é gerar um arquivo chamado bkpdbonline a partir do banco dbonline. A lógica é justamente usar o utilitário de dump do PostgreSQL, que cria um arquivo com o conteúdo do banco para posterior restauração. Em outras palavras: não é para abrir o banco no psql e muito menos usar tar como se o banco fosse uma pasta qualquer. O gabarito aponta a alternativa B porque ela representa o comando de exportação do banco. Em documentação e prática do PostgreSQL, o comando correto é pg_dump, que é a ferramenta padrão para backup lógico. A banca costuma cobrar esse conhecimento de forma direta: banco de dados PostgreSQL = pg_dump para backup; psql = interface de comandos; tar = ferramenta de compactação/arquivamento do sistema operacional. Então, guarde a ideia simples: para salvar o banco em arquivo, use a ferramenta de dump do PostgreSQL. Se aparecer psql, pense em execução de comandos; se aparecer tar, pense em arquivo e compactação, não em backup lógico do conteúdo do banco.