Semana 1
Arquitetura e administração do PostgreSQL
Aula 1
- Processos: postmaster, backends e background workers
- MVCC: versões de linha e visibilidade
- WAL, checkpoints e buffer cache
Aula 2
- Roles, databases e tablespaces
- Extensions
- postgresql.conf, SHOW/ALTER SYSTEM e organização do PGDATA
Prática: Instalar o PostgreSQL 16 ou 17, organizar databases, roles e tablespaces e observar o WAL em ação.
Arena: Chamados de administração, nível Júnior e Pleno.
Semana 2
Backup, restore e PITR
Aula 1
- Estratégia de backup, retenção e RPO/RTO
- Backup lógico: pg_dump, pg_dumpall e pg_restore
- Backup físico com pg_basebackup
Aula 2
- Arquivamento de WAL
- Point-in-time recovery
- pgBackRest, Barman e validação de backup
Prática: Simular a exclusão acidental de dados e recuperar o banco até um ponto no tempo com PITR.
Arena: Chamados de backup e recovery.
Semana 3
Replicação
Aula 1
- Streaming replication e hot standby
- Replicação síncrona e assíncrona
- Replication slots e retenção de WAL
Aula 2
- Monitoramento de lag com pg_stat_replication
- Logical replication: publication e subscription
- Quando usar replicação física ou lógica
Prática: Montar um standby com streaming replication e uma replicação lógica entre dois bancos.
Arena: Chamados de replicação, nível Pleno.
Semana 4
Alta disponibilidade e failover
Aula 1
- Promoção de standby e switchover planejado
- pg_rewind: reaproveitar o antigo primário
- Patroni e o armazenamento de estado do cluster (DCS)
Aula 2
- pgBouncer e pooling de conexões
- Split-brain: como acontece e como evitar
- Cenários de falha e recovery de réplica
Prática: Montar um cluster com failover automático e derrubar o primário para validar a promoção.
Arena: Chamados de alta disponibilidade, nível Pleno e Sênior.
Semana 5
Performance I — planos e índices
Aula 1
- Leitura de EXPLAIN e EXPLAIN ANALYZE
- Estatísticas do planner e ANALYZE
- Tipos de índice: B-tree, GIN, GiST e BRIN
- Índices parciais, compostos e de expressão
Aula 2
- pg_stat_statements: achar as queries que mais custam
- Locks, esperas e sessões bloqueadas
- Índices: teoria dos algoritmos, diagramas animados, tipos e quando usar
Prática: Diagnosticar uma query lenta, criar o índice certo e comprovar o ganho pelo plano de execução.
Arena: Chamados de performance.
Semana 6
Performance II — VACUUM, particionamento e tuning
Aula 1
- VACUUM e bloat de tabelas e índices
- Autovacuum: parâmetros e ajuste por tabela
- Risco de transaction ID wraparound
Aula 2
- Particionamento declarativo
- Parâmetros de memória e de WAL: shared_buffers, work_mem e checkpoints
- Manutenção de índices e reorganização
Prática: Reproduzir bloat com autovacuum travado, corrigir e particionar uma tabela grande.
Arena: Chamados de performance, nível Pleno e Sênior.
Semana 7
Segurança
Aula 1
- Modelo de segurança: roles, atributos e herança
- pg_hba.conf e métodos de autenticação
- Privilégios, grants e privilégio mínimo
Aula 2
- Row Level Security
- TLS e criptografia em trânsito
- Auditoria com pgaudit, gestão de segredos e revisão de acesso
Prática: Reconfigurar o pg_hba.conf, aplicar RLS e habilitar auditoria com pgaudit.
Arena: Chamados de segurança, nível Pleno.
Semana 8
Programação em PL/pgSQL e projeto final
Aula 1
- PL/pgSQL: blocos, variáveis, controle de fluxo e exceções
- Functions e procedures
- Triggers
Aula 2
- JSONB: consultas e indexação
- Transações, níveis de isolamento e concorrência
- Projeto final e revisão com a turma
Prática: Projeto final: resolver, em grupo, um incidente de várias camadas.
Arena: Chamado integrador de nível Sênior.
Semana 9
Em breve
pgvector, pgai e agentes no PostgreSQL
pgvector: tipos, operadores e índices HNSW/IVFFlat · Embeddings e busca híbrida (vetor + texto) · RAG com PostgreSQL e MCP · Governança, custos e LGPD