Receitas do PostgreSQL
- Trocar o segmento de WALWAL e checkpoint
- Executar um CHECKPOINT manualWAL e checkpoint
- Mostrar o tamanho do WAL e o LSN atualWAL e checkpoint
- Mostrar o atraso de arquivamento (WAL ainda não arquivado)WAL e checkpoint
- Adicionar uma nova tablespaceArmazenamento
- Mover uma tabela para outro tablespaceArmazenamento
- Mover um índice para outro tablespaceArmazenamento
- Consultar o tamanho do banco de dados e das tabelasArmazenamento
- Estimar o bloat de tabelasArmazenamento
- VACUUM ANALYZE em uma tabela específicaManutenção
- Executar um VACUUM FREEZE agressivoManutenção
- Reconstruir um índice sem bloqueio (REINDEX CONCURRENTLY)Manutenção
- Ajustar o autovacuum para uma tabela específicaManutenção
- Aumentar o statistics target de uma colunaManutenção
- Alterar um parâmetro e recarregar (ALTER SYSTEM)Parâmetros
- Alterar um parâmetro para a sessão (SET)Parâmetros
- Mostrar o valor atual de um parâmetroParâmetros
- Criar uma réplica física (pg_basebackup)Replicação
- Promover uma réplica a primárioReplicação
- Mostrar o lag de replicaçãoReplicação
- Criar e remover um replication slotReplicação
- Configurar uma publication e uma subscription de replicação lógicaReplicação
- Encerrar um backend (pg_terminate_backend)Sessões
- Cancelar uma consulta em execução (pg_cancel_backend)Sessões
- Mostrar consultas ativas e bloqueadorasSessões
- Adicionar uma extensãoExtensões
- Listar as extensões instaladasExtensões
- Mostrar o status, a topologia e o histórico do cluster PatroniPatroni
- Executar um switchover planejado com PatroniPatroni
- Executar um failover manual com PatroniPatroni
- Reconstruir uma réplica quebrada com Patroni (reinit)Patroni
- Alterar parâmetros de todo o cluster no Patroni (edit-config) e aplicar restarts pendentesPatroni
- Colocar o Patroni em modo de manutenção e retirar (pause/resume)Patroni
- Verificar a saúde do DCS (etcd/Consul) e da REST API do PatroniPatroni
- Configurar o arquivamento de WAL para o pgBackRest (archive-push/archive-get)Backup e PITR
- Criar o stanza do pgBackRest e verificar o arquivamento (stanza-create/check)Backup e PITR
- Fazer backups full, differential e incremental com pgBackRestBackup e PITR
- Mostrar o catálogo de backups do pgBackRest e o intervalo do arquivo de WAL (info)Backup e PITR
- Restaurar o backup mais recente com pgBackRestBackup e PITR
- Restaurar para um ponto no tempo com pgBackRest (PITR, --type=time)Backup e PITR
- Reconstruir rapidamente um standby com delta restore do pgBackRestBackup e PITR
- Configurar a retenção do pgBackRest e executar o expireBackup e PITR
- Configurar um standby manualmente (standby.signal + primary_conninfo)Replicação
- Monitorar o lag de recebimento e de replay de WAL no standby (pg_stat_wal_receiver)Replicação
- Reintegrar o antigo primário como réplica após um failover com pg_rewindReplicação
- Configurar replicação síncrona com quorum (ANY) ou prioridade (FIRST)Replicação
- Monitorar o WAL retido por replication slots e remover com segurança um slot abandonadoReplicação
- Limitar o WAL que os slots podem reter (max_slot_wal_keep_size)Replicação
- Adicionar uma tabela a uma publication e atualizar a subscription (REFRESH PUBLICATION)Replicação lógica
- Monitorar a replicação lógica (pg_stat_subscription, erros de apply, lag de slot)Replicação lógica
- Resolver um conflito de replicação lógica (disable_on_error, SKIP)Replicação lógica
- Sincronizar valores de sequences com o subscriber na replicação lógicaReplicação lógica
- Remover uma subscription e limpar um slot lógico órfão no publisherReplicação lógica
- Upgrade de versão major com pg_upgrade --link (runbook de ponta a ponta)Upgrade
- Upgrade de versão major com downtime quase zero via replicação lógicaUpgrade
- Mostrar pools, estatísticas e conexões do PgBouncer (SHOW POOLS/STATS/CLIENTS/SERVERS)PgBouncer
- Segurar conexões durante a manutenção com PgBouncer (PAUSE/RESUME) e recarregar a configuração (RELOAD)PgBouncer
- Escolha do pool_mode do PgBouncer e dimensionamento básicoPgBouncer
- Encontrar as consultas mais caras (pg_stat_statements: tempo total e médio)Desempenho
- Encontrar as consultas que geram I/O de disco, arquivos temporários e WAL (pg_stat_statements)Desempenho
- Zerar as estatísticas do pg_stat_statements (todas ou de uma única consulta)Desempenho
- Registrar os planos de execução de consultas lentas com auto_explainDesempenho
- Ler um plano em profundidade com EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL)Desempenho
- Detectar regressões de plano por queryid (comparação de snapshots do pg_stat_statements)Desempenho
- Verificar a capacidade de consulta paralela e o uso atual de workersDesempenho
- Medir o impacto da compilação JIT no tempo de consultaDesempenho
- Montar a árvore de bloqueios (encontrar o bloqueador raiz)Sessões
- Inspecionar em detalhe as esperas de lock por objeto e modo de lock (pg_locks)Sessões
- Encontrar transações longas e 'idle in transaction'Sessões
- Encerrar em massa, de forma controlada, sessões 'idle in transaction' longasSessões
- Definir statement_timeout / lock_timeout por role e bancoSessões
- Aplicar DDL com segurança usando lock_timeout e novas tentativas (evitar filas de lock)Sessões
- Medir o uso de conexões em relação ao max_connectionsSessões
- Acompanhar o progresso de operações autovacuum/VACUUM em execuçãoManutenção
- Medir o risco de wraparound de transaction ID (idade de XID por banco e tabela)Manutenção
- Encontrar quem segura o xmin horizon e impede o VACUUM de remover dead tuplesManutenção
- Medir o bloat de tabelas e índices com pgstattupleManutenção
- Reorganizar uma tabela inchada sem locks longos (pg_repack)Manutenção
- Encontrar e limpar índices INVALIDManutenção
- Criar estatísticas estendidas para colunas correlacionadas (CREATE STATISTICS)Manutenção
- Encontrar tabelas com estatísticas desatualizadas (estratégia de ANALYZE)Manutenção
- Verificar a cobertura do visibility map e a eficiência do Index Only ScanManutenção
- Criar uma tabela particionada por range mensal (gerar as partições em um loop)Particionamento
- Anexar uma tabela preparada como partição com um lock curto (ATTACH PARTITION)Particionamento
- Desanexar uma partição antiga sem bloquear o tráfego em produção (DETACH CONCURRENTLY)Particionamento
- Armadilha da partição default: nova partição falha com 'would be violated by some row'Particionamento
- Verificar se o partition pruning funciona (em tempo de planejamento e de execução)Particionamento
- Automatizar a criação e a retenção de partições com pg_partmanParticionamento
- Montar uma hierarquia de roles com privilégio mínimo (GRANT + ALTER DEFAULT PRIVILEGES)Segurança
- Configurar isolamento de tenants com row-level securitySegurança
- Validar a ordem das regras do pg_hba.conf e recarregar com segurançaSegurança
- Habilitar SSL/TLS e verificar conexões criptografadas (pg_stat_ssl)Segurança
- Migrar de senhas md5 para scram-sha-256Segurança
- Manter logs de auditoria em nível de role e de objeto com pgauditSegurança
- Revisar as configurações de memória (shared_buffers, work_mem, maintenance_work_mem)Parâmetros
- Mostrar parâmetros com restart pendente e erros em arquivos de configuraçãoParâmetros
- Revisar o comportamento dos checkpoints (PG17+ pg_stat_checkpointer, PG16 e anteriores pg_stat_bgwriter)Parâmetros
- Listar o tamanho das tabelas dividido em heap / índice / TOAST e os maiores índicesArmazenamento
- Encontrar extensões com atualizações pendentes e atualizá-lasExtensões
- Analisar de onde vem o I/O com pg_stat_io (tipo de backend, objeto, contexto)Extensões