HOME LAB · SELFHOSTING · NETZWERK

Artikel-Info

Kurzfassung

Schwierigkeit: Mittel · Dauer: 45–90 Min · Ziel: PostgreSQL Wartung im Homelab: Vacuum, Index-Checks, Backup-Strategie

Kategorie

,

Tags

Veröffentlicht

Zuletzt aktualisiert

PostgreSQL Wartung im Homelab: Vacuum, Index-Checks, Backup-Strategie

CrowdSec auf Debian produktiv betreiben: Collections, Bouncer, saubere Regeln – Featured Image v9

Schwierigkeit: Mittel · Dauer: 45–90 Min · Ziel: PostgreSQL Wartung im Homelab: Vacuum, Index-Checks, Backup-Strategie

Kurzproblem und Zielbild

In diesem Guide setzt du PostgreSQL Wartung im Homelab: Vacuum, Index-Checks, Backup-Strategie mit reproduzierbaren Schritten, klaren Checks und belastbaren Recovery-Pfaden um.

Voraussetzungen

  • Linux-/CLI-Grundlagen
  • Admin-Zugriff auf die Zielsysteme
  • Snapshot/Backup vor Änderungen

Schnellstart (funktionierende Basis)

hostnamectl
ip a
systemctl --failed
journalctl -p 3 -xb --no-pager | tail -n 30

Schritt-für-Schritt Umsetzung

1) Ausgangszustand dokumentieren

date -Iseconds
uname -a
# aktuelle Versionen und relevante Konfig-Pfade notieren

2) Kernkonfiguration sauber setzen

psql -U postgres -c "SELECT version();"
psql -U postgres -c "VACUUM (VERBOSE, ANALYZE);"
psql -U postgres -c "REINDEX DATABASE postgres;"

3) Dienst/Funktion gezielt prüfen

psql -U postgres -c "SELECT relname,n_live_tup,n_dead_tup FROM pg_stat_user_tables ORDER BY n_dead_tup DESC LIMIT 10;"
pg_isready

4) Betriebsgrenzen testen

pgbench -i -s 10 postgres
pgbench -c 20 -j 4 -T 60 postgres
psql -U postgres -d postgres -c "SELECT * FROM pg_stat_bgwriter;"

Validierung / Checks

psql -U postgres -c "SELECT relname,n_live_tup,n_dead_tup FROM pg_stat_user_tables ORDER BY n_dead_tup DESC LIMIT 10;"
pg_isready
psql -U postgres -d postgres -c "SELECT now();"
pg_isready -h 127.0.0.1 -p 5432

Troubleshooting

Konfiguration wird nicht übernommen

Ursache: Syntax-/Reload-Fehler oder falscher Parameterpfad.

sudo sed -n '1,160p' /etc/postgresql/*/main/pg_hba.conf
sudo -u postgres psql -c "SHOW hba_file;"
sudo systemctl reload postgresql

Dienst läuft, Funktion aber fehlerhaft

Ursache: Abhängigkeiten, Routing, Rechte oder Versionen inkonsistent.

ss -ltnp | grep 5432
psql -U postgres -d postgres -c "SELECT usename,client_addr FROM pg_stat_activity;"
traceroute DB_HOST

Fazit

Mit einem klaren Ablauf, harten Checks und dokumentierten Grenzwerten bleibt das Setup wartbar statt zufällig stabil. Nächster Schritt: den Ablauf als monatliche Betriebsroutine einplanen.

Quellen

Teilen: X LinkedIn Reddit WhatsApp Telegram Mastodon