UC2 · Implementar Banco de Dados

Backup e Restore

Aula 17 — Não perder os dados nunca

Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

O mapa de hoje

  • Bloco 1 — por que backup, e o que é uma política de recuperação
  • Bloco 2 — backup e restore pelo pgAdmin, passo a passo
  • Bloco 3 — o ciclo de vida do sistema e o preparo para a Aula 18
  • Bloco 4 — mão na massa: backup, destruição controlada e restore
Hoje vocês vão apagar dados de propósito e trazer de volta. É a única forma de saber se o backup presta.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Retomando a Aula 16

  • O que é privilégio mínimo?
  • Por que não dá para testar permissão como postgres?
  • Um GRANT protege contra disco queimado?
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Bloco 1

Por que backup

Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone O que pode destruir um banco

  • Falha de hardware — o disco simplesmente para
  • Erro humano — o DELETE sem WHERE da Aula 12
  • Erro de software — uma migração malfeita apaga uma coluna
  • Ataque — ransomware criptografa tudo e pede resgate
  • Acidente físico — incêndio, alagamento, roubo do equipamento
Repare: permissão não protege contra nenhum desses. Quem deu o DELETE tinha permissão para dar.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Backup e restore — o par

O banco vira arquivo pelo pg_dump, o arquivo e guardado em outro lugar, e o pg_restore devolve o banco

EN PT
backup cópia de segurança
restore restauração — devolver o banco ao estado da cópia
dump despejo — o arquivo com o conteúdo do banco
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone A pergunta que define a política

Com backup na segunda e falha na terca, o restore volta para segunda e o trabalho da terca inteira se perde

Quanto trabalho o negócio pode perder? A resposta define a frequência do backup. Se perder um dia é inaceitável, backup diário não basta.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Os três elementos de uma política

icone Frequênciade quanto em quanto tempo?
icone Localguardado onde?
nunca só no mesmo disco
icone Retençãopor quanto tempo guardamos cada cópia?
Falta um quarto, que quase todo mundo esquece: teste. Backup que nunca foi restaurado não é backup — é esperança.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Checagem do Bloco 1

A locadora fecha às 22h e o backup roda às 3h da manhã. Na quinta, às 19h40, o
disco morre.

  • Quanto trabalho se perdeu? Responda em horas
  • Que mudança na política cortaria essa perda pela metade?
  • Cite uma coisa que o backup do banco não devolve
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Bloco 2

Backup e restore pelo pgAdmin

Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Passo a passo — fazer o backup

  1. Botão direito no banco do projeto → Backup…
  2. Em Filename, clique na pasta e escolha onde salvar
  3. Nome do arquivo: locadora_2026-10-28.backup
  4. Em Format, escolha Custom
  5. Clique em Backup
  6. Espere a notificação verde "Successfully completed"
Coloquem a data no nome do arquivo, no formato ano-mês-dia. Assim os backups ordenam sozinhos e ninguém restaura o errado.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone O que o pgAdmin faz por baixo

pg_dump --format=custom --file="locadora_2026-10-28.backup" locadora
O pgAdmin está rodando essa linha de comando por você. Vocês não precisam digitar isso — mas é bom saber que existe, porque em servidor de verdade o backup é automático, por linha de comando.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Passo a passo — restaurar

  1. Botão direito no banco → Restore…
  2. Em Filename, escolha o arquivo de backup
  3. Em Format, deixe Custom or tar
  4. Clique em Restore e espere a notificação verde
  5. Dê Refresh no banco e confira os dados
O restore não apaga o que já está lá — ele tenta inserir por cima. Se a tabela ainda existe com dados, podem aparecer erros de chave duplicada.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Erro comum — restaurar por cima sem limpar

Sintoma: o restore termina com erros de "duplicate key value violates unique constraint".
Causa: as linhas já existiam.
Conserto: apague o banco e recrie vazio antes de restaurar, ou use a opção Clean before restore.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Backup de uma tabela só

Nem todo backup precisa ser do banco inteiro:

  1. Botão direito na tabela → Backup…
  2. Mesmo procedimento, mas o arquivo guarda só aquela tabela
Útil antes de uma alteração arriscada: "vou mexer só na tabela jogo, deixa eu tirar uma cópia dela primeiro". Leva 10 segundos e já salvou muita gente.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Exportar resultado de consulta

Para entregar um relatório a quem não usa pgAdmin:

  1. Rode a consulta no Query Tool
  2. No painel de resultados, clique no ícone de download
  3. Salve como CSV — abre no Excel
Isso não é backup: é exportação de um resultado. Não dá para restaurar o banco a partir de um CSV — as chaves, os tipos e as constraints não vão junto.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Checagem do Bloco 2

Você vai restaurar o backup de ontem num banco que já tem dados de hoje.

  • Na ordem, o que você faz antes de clicar em Restore?
  • O que acontece se restaurar por cima sem limpar?
  • Depois de restaurar, como você prova que voltou tudo?
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Bloco 3

Ciclo de vida do sistema

Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone O banco não termina quando entra no ar

As cinco fases do ciclo de vida de um banco: planejar, implantar, operar, manter e desativar

A maior parte da vida de um sistema é operação e manutenção — não construção. É onde a maioria das horas de trabalho de vocês vai ser gasta.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone O que muda num banco que já está no ar

Mudança Cuidado
Acrescentar coluna quase sempre seguro (ALTER TABLE ADD)
Remover coluna quebra quem usava — avise antes
Mudar tipo de coluna pode perder dado na conversão
Apagar tabela backup antes, sempre
Antes de qualquer mudança de estrutura em banco com dados: backup primeiro. Sem exceção.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

icone Preparando a Aula 18

Na terça cada grupo demonstra o CRUD completo, em 10 minutos. Vão precisar de:

  1. O DER atualizado (Aula 09)
  2. O banco com as tabelas e dados (Aulas 11 e 12)
  3. O notebook rodando do começo ao fim (Aula 15)
  4. A role restrita e a prova do acesso negado (Aula 16)
  5. O backup feito hoje, com o arquivo em mãos
Façam o backup do banco no fim da aula de hoje e levem o arquivo. Se algo der errado na hora, vocês restauram e apresentam mesmo assim.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Checagem do Bloco 3

Olhando o banco do seu grupo, agora:

  • Que mudança de estrutura ainda falta, e o que você faz antes dela?
  • Qual dos cinco artefatos da entrega ainda não está na pasta?
  • Se o notebook não rodar do começo ao fim na terça, qual é o plano?
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Intervalo

10 minutos

Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Backup, destruição controlada e restore

  1. Façam o backup completo do banco do projeto
  2. Confiram que o arquivo existe e tem tamanho maior que zero
  3. Apaguem de propósito algumas linhas de uma tabela — anotem quantas e quais
  4. Confirmem no pgAdmin que os dados sumiram mesmo
  5. Restaurem o backup (limpando antes, se precisar)
  6. Confirmem que as linhas voltaram
  7. Escrevam a política de backup do grupo: frequência, local, retenção e teste
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Lembrete de entrega

Padrão Hoje
grupoNN-aulaNN-artefato.<ext> grupo03-aula17-politica-backup.pdf
O arquivo de backup não é entregue (é grande) — mas levem ele com vocês na terça, num pen drive ou na nuvem.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Enquanto vocês testam

O que eu vou conferir:

  • O arquivo de backup existe e não está vazio?
  • Os dados sumiram mesmo antes do restore?
  • Os dados voltaram depois do restore?
  • A política tem os quatro elementos: frequência, local, retenção e teste?
  • O backup está guardado em outro lugar, não só no disco da máquina?
Terminou? Façam um segundo backup depois de inserir dados novos e comparem: restaurar o backup antigo faz os dados novos sumirem. É a janela de perda acontecendo na sua frente.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Devolutiva — passo de mesa em mesa

Eu passo em cada grupo. Tenham pronto:

  • Quantas linhas apagaram e se todas voltaram
  • A política de backup do grupo, com os quatro elementos
  • Se algo deu errado no restore, o quê e como resolveram
Os erros de restore são quase todos parecidos. Os que eu encontrar vão para o quadro no fechamento, sem nome de grupo.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Antes da próxima aula

Testar em casa: faça um backup do seu banco pessoal e guarde em um lugar que não seja o disco da máquina.

Tarefa opcional: ensaie a apresentação de terça com o grupo, cronometrando os 10 minutos. Quem fala o quê?

Para treinar: locadora-exercicios-17-backup.sql, na página da aula — o inventário que prova que a restauração funcionou.

Na terça: tragam o DER, o banco, o notebook, a role restrita e o arquivo de backup. E ensaiem — 10 minutos passam rápido.
Aula 17 · 30/10/2026 · Indicador 6
UC2 · Implementar Banco de Dados

Na terça: a entrega

Dezessete aulas atrás, vocês olhavam uma planilha quebrada. Na terça, vocês demonstram o banco que construíram.

Aula 17 · 30/10/2026 · Indicador 6
← todas as aulas