Melhores Práticas de CLI
Um resumo condensado das 25 práticas mais importantes de CLI do Linux para equipes de DBA e plataforma PostgreSQL 18.4 - conteúdo portátil compartilhado; verifica a saúde de scripts comuns.
Busque em todas as páginas da documentação
Um resumo condensado das 25 práticas mais importantes de CLI do Linux para equipes de DBA e plataforma PostgreSQL 18.4 - conteúdo portátil compartilhado; verifica a saúde de scripts comuns.
Prefira SIGTERM em vez de SIGKILL no postmaster: Leia postmaster.pid; permita que o checkpoint seja concluído (Noções Básicas de CLI do Linux para DBAs).
Execute o Postgres sob systemd ou k8s, não postgres & puro: Sobrevive à desconexão SSH; política de reinício definida.
Persista sessões de ops com tmux: iostat longo e caudas de log sobrevivem à desconexão.
df -h e df -i no PGDATA primeiro: Esgotamento de disco e de inodes ambos param as escritas.
du -sh pg_wal quando o disco estiver crescendo: Problema de arquivamento WAL ou slot de replicação antes de culpar o crescimento dos dados.
Verifique dmesg para o OOM killer: Correlacione o timestamp com o código de saída 137 do worker do Postgres.
vmstat 1 5 antes de ajustar GUCs de memória: si/so de swap significa problema de RAM do host, não apenas work_mem.
iostat -xz 1 5 antes de debates sobre índices: %util saturado precisa de capacidade de IO ou menos leituras.
pidstat -r no pg_stat_activity.pid ativo: Comprova RSS de ordenação/hash em um backend específico.
Script de bundle de incidentes com timestamp: df, free, vmstat, CSV de atividade, CSV de locks em um tarball.
set -euo pipefail em todos os scripts bash: Falha rápida; variáveis indefinidas causam erro.
psql -v ON_ERROR_STOP=1 em automação: Falha de SQL interrompe o script, não continua silenciosamente.
DATABASE_URL somente leitura para scripts de triagem: Role de escriba sem acidentes de escrita.
journalctl -u postgresql em VMs: Linhas de erro dos últimos 30 minutos na linha do tempo SEV1.
kubectl logs / exec em k8s: Mesmo bundle de SQL dentro do namespace de rede do pod.
ss -tnp para tempestades de conexão: Compare com max_connections e limites do pooler.
Nunca rm arquivos WAL manualmente: Corrija o arquivador ou o slot; exclusão manual quebra a replicação e o PITR.
Escopo find e grep para PGDATA ou diretório de logs: Não escaneie / como usuário postgres.
Commit bin/pg-health.sh no repositório da plataforma: Mesma verificação localmente, cron de staging, hook pós-deploy.
Use curl apenas para healthchecks HTTP, não SQL: Use psql para a verdade do banco de dados.
Diferenças de sed -i entre macOS e Linux: Documente em CONTRIBUTING ou use scripts portáteis em CI.
Hosts Bastion guardam credenciais de "break-glass": Não em laptops de desenvolvedores de aplicativos para produção.
Dupla de juniores na primeira execução do bundle de incidentes: Evita o reflexo acidental de kill -9.
Anexe o bundle CLI ao ticket de post-mortem: Linha do tempo reproduzível para auditores.
Exercício trimestral: execute o bundle contra o staging durante um falso SEV2: Comprova que os scripts ainda funcionam após a atualização do SO.
Apenas em sidecar de depuração ou bastion. Imagens mínimas de produção usam ps e top -b -n 1 de execução única.
Primeiro dia: psql, EXPLAIN. Primeira semana: script de bundle de incidentes. Conhecimento profundo de iostat/systemd é em parceria com o DBA (Noções Básicas de Onboarding).
Ambos. Métricas do host explicam por que o Postgres está esperando; pg_stat_activity mostra quem. Nunca um sem o outro.
Versões da Stack: Esta página foi escrita para PostgreSQL 18.4 em Linux (implantações systemd e Kubernetes).
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026