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.
-
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:
iostatlongo e caudas de log sobrevivem à desconexão. -
df -hedf -ino PGDATA primeiro: Esgotamento de disco e de inodes ambos param as escritas. -
du -sh pg_walquando o disco estiver crescendo: Problema de arquivamento WAL ou slot de replicação antes de culpar o crescimento dos dados. -
Verifique
dmesgpara o OOM killer: Correlacione o timestamp com o código de saída 137 do worker do Postgres. -
vmstat 1 5antes de ajustar GUCs de memória:si/sode swap significa problema de RAM do host, não apenaswork_mem. -
iostat -xz 1 5antes de debates sobre índices:%utilsaturado precisa de capacidade de IO ou menos leituras. -
pidstat -rnopg_stat_activity.pidativo: 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 pipefailem todos os scripts bash: Falha rápida; variáveis indefinidas causam erro. -
psql -v ON_ERROR_STOP=1em automação: Falha de SQL interrompe o script, não continua silenciosamente. -
DATABASE_URLsomente leitura para scripts de triagem: Role de escriba sem acidentes de escrita. -
journalctl -u postgresqlem VMs: Linhas de erro dos últimos 30 minutos na linha do tempo SEV1. -
kubectl logs/execem k8s: Mesmo bundle de SQL dentro do namespace de rede do pod. -
ss -tnppara tempestades de conexão: Compare commax_connectionse limites do pooler. -
Nunca
rmarquivos WAL manualmente: Corrija o arquivador ou o slot; exclusão manual quebra a replicação e o PITR. -
Escopo
findegreppara PGDATA ou diretório de logs: Não escaneie/como usuário postgres. -
Commit
bin/pg-health.shno repositório da plataforma: Mesma verificação localmente, cron de staging, hook pós-deploy. -
Use
curlapenas para healthchecks HTTP, não SQL: Usepsqlpara a verdade do banco de dados. -
Diferenças de
sed -ientre 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.
FAQs
Instalar htop em pods de banco de dados?
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.
Quanta habilidade de CLI os desenvolvedores de aplicativos precisam?
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).
CLI vs views SQL durante um incidente?
Ambos. Métricas do host explicam por que o Postgres está esperando; pg_stat_activity mostra quem. Nunca um sem o outro.
Relacionado
- Noções Básicas de CLI do Linux para DBAs - triagem de primeira hora
- Ferramentas de IO e Memória - iostat, vmstat, pidstat
- Habilidade de Triagem de Incidentes - árvore de decisão
- Noções Básicas de Incidentes - papéis e comunicação
Versões da Stack: Esta página foi escrita para PostgreSQL 18.4 em Linux (implantações systemd e Kubernetes).