Rezepte: PostgreSQL
- WAL-Segment wechselnWAL & Checkpoint
- Manuellen CHECKPOINT ausführenWAL & Checkpoint
- WAL-Größe und aktuelle LSN anzeigenWAL & Checkpoint
- Archiv-Rückstand anzeigen (noch nicht archiviertes WAL)WAL & Checkpoint
- Neuen Tablespace hinzufügenSpeicher
- Tabelle in einen anderen Tablespace verschiebenSpeicher
- Index in einen anderen Tablespace verschiebenSpeicher
- Datenbank- und Tabellengröße abfragenSpeicher
- Tabellen-Bloat schätzenSpeicher
- VACUUM ANALYZE für eine bestimmte TabelleWartung
- Aggressives VACUUM FREEZE ausführenWartung
- Index ohne Sperre neu aufbauen (REINDEX CONCURRENTLY)Wartung
- Autovacuum für eine bestimmte Tabelle einstellenWartung
- Statistikziel einer Spalte erhöhenWartung
- Parameter ändern und neu laden (ALTER SYSTEM)Parameter
- Parameter für die Session ändern (SET)Parameter
- Aktuellen Parameterwert anzeigenParameter
- Physische Replica aufbauen (pg_basebackup)Replikation
- Replica zur Primary hochstufen (Promote)Replikation
- Replikationsverzögerung anzeigenReplikation
- Replication Slot anlegen und löschenReplikation
- Publication und Subscription für logische Replikation einrichtenReplikation
- Backend beenden (pg_terminate_backend)Sessions
- Laufende Abfrage abbrechen (pg_cancel_backend)Sessions
- Aktive und blockierende Abfragen anzeigenSessions
- Extension hinzufügenExtensions
- Installierte Extensions auflistenExtensions
- Status, Topologie und Historie des Patroni-Clusters anzeigenPatroni
- Geplanten Switchover mit Patroni durchführenPatroni
- Manuellen Failover mit Patroni durchführenPatroni
- Defekte Replica mit Patroni neu aufbauen (reinit)Patroni
- Clusterweite Parameter in Patroni ändern (edit-config) und ausstehende Neustarts anwendenPatroni
- Patroni in den Wartungsmodus versetzen und zurück (pause/resume)Patroni
- Zustand von Patroni-DCS (etcd/Consul) und REST API prüfenPatroni
- WAL-Archivierung für pgBackRest konfigurieren (archive-push/archive-get)Backup & PITR
- pgBackRest-Stanza anlegen und Archivierung prüfen (stanza-create/check)Backup & PITR
- Voll-, differenzielle und inkrementelle Backups mit pgBackRest erstellenBackup & PITR
- pgBackRest-Backup-Katalog und WAL-Archivbereich anzeigen (info)Backup & PITR
- Letztes Backup mit pgBackRest wiederherstellenBackup & PITR
- Mit pgBackRest auf einen Zeitpunkt wiederherstellen (PITR, --type=time)Backup & PITR
- Standby mit pgBackRest-Delta-Restore schnell neu aufbauenBackup & PITR
- Aufbewahrung in pgBackRest konfigurieren und expire ausführenBackup & PITR
- Standby manuell konfigurieren (standby.signal + primary_conninfo)Replikation
- WAL-Empfangs- und Replay-Verzögerung auf dem Standby überwachen (pg_stat_wal_receiver)Replikation
- Alte Primary nach einem Failover mit pg_rewind als Replica wieder einbindenReplikation
- Synchrone Replikation mit Quorum (ANY) oder Priorität (FIRST) konfigurierenReplikation
- Von Replication Slots zurückgehaltenes WAL überwachen und einen verwaisten Slot sicher löschenReplikation
- Von Slots zurückhaltbares WAL begrenzen (max_slot_wal_keep_size)Replikation
- Tabelle zu einer Publication hinzufügen und Subscription aktualisieren (REFRESH PUBLICATION)Logische Replikation
- Logische Replikation überwachen (pg_stat_subscription, Apply-Fehler, Slot-Lag)Logische Replikation
- Konflikt in der logischen Replikation lösen (disable_on_error, SKIP)Logische Replikation
- Sequence-Werte in der logischen Replikation zum Subscriber synchronisierenLogische Replikation
- Subscription entfernen und verwaisten logischen Slot auf dem Publisher bereinigenLogische Replikation
- Major-Version-Upgrade mit pg_upgrade --link (End-to-End-Runbook)Upgrade
- Major-Version-Upgrade nahezu ohne Ausfallzeit mit logischer ReplikationUpgrade
- PgBouncer-Pools, Statistiken und Verbindungen anzeigen (SHOW POOLS/STATS/CLIENTS/SERVERS)PgBouncer
- Verbindungen während der Wartung mit PgBouncer halten (PAUSE/RESUME) und Konfiguration neu laden (RELOAD)PgBouncer
- Wahl des pool_mode in PgBouncer und grundlegende DimensionierungPgBouncer
- Teuerste Abfragen finden (pg_stat_statements: Gesamt- und mittlere Zeit)Performance
- Abfragen finden, die Platten-I/O, Temp-Dateien und WAL verursachen (pg_stat_statements)Performance
- Statistiken von pg_stat_statements zurücksetzen (alle oder eine einzelne Abfrage)Performance
- Ausführungspläne langsamer Abfragen mit auto_explain protokollierenPerformance
- Plan im Detail lesen mit EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL)Performance
- Planregressionen per queryid erkennen (Snapshot-Vergleich von pg_stat_statements)Performance
- Kapazität für Parallel Query und aktuelle Worker-Nutzung prüfenPerformance
- Auswirkung der JIT-Kompilierung auf die Abfragezeit messenPerformance
- Blockierungsbaum aufbauen (Root Blocker finden)Sessions
- Sperrwartezustände im Detail nach Objekt und Sperrmodus untersuchen (pg_locks)Sessions
- Lang laufende und 'idle in transaction'-Transaktionen findenSessions
- Lange 'idle in transaction'-Sessions kontrolliert in großer Zahl beendenSessions
- statement_timeout / lock_timeout je Rolle und Datenbank setzenSessions
- DDL sicher mit lock_timeout und Wiederholungen anwenden (Lock Queues vermeiden)Sessions
- Verbindungsnutzung im Verhältnis zu max_connections messenSessions
- Fortschritt laufender Autovacuum-/VACUUM-Vorgänge überwachenWartung
- Risiko eines Transaction-ID-Wraparounds messen (XID-Alter je Datenbank und Tabelle)Wartung
- xmin-Horizont-Halter finden, die VACUUM am Entfernen toter Tupel hindernWartung
- Tabellen- und Index-Bloat mit pgstattuple messenWartung
- Aufgeblähte Tabelle ohne lange Sperren reorganisieren (pg_repack)Wartung
- INVALID-Indizes finden und bereinigenWartung
- Erweiterte Statistiken für korrelierte Spalten anlegen (CREATE STATISTICS)Wartung
- Tabellen mit veralteten Statistiken finden (ANALYZE-Strategie)Wartung
- Abdeckung der Visibility Map und Effizienz von Index Only Scans prüfenWartung
- Monatlich Range-partitionierte Tabelle anlegen (Partitionen in einer Schleife erzeugen)Partitionierung
- Vorbereitete Tabelle mit kurzer Sperre als Partition einhängen (ATTACH PARTITION)Partitionierung
- Alte Partition aushängen, ohne den Live-Betrieb zu blockieren (DETACH CONCURRENTLY)Partitionierung
- Falle Default-Partition: neue Partition scheitert mit 'would be violated by some row'Partitionierung
- Prüfen, ob Partition Pruning funktioniert (Planungs- und Laufzeit)Partitionierung
- Anlegen und Aufbewahrung von Partitionen mit pg_partman automatisierenPartitionierung
- Rollenhierarchie nach Least Privilege aufbauen (GRANT + ALTER DEFAULT PRIVILEGES)Sicherheit
- Mandantentrennung mit Row-Level Security einrichtenSicherheit
- Regelreihenfolge in pg_hba.conf prüfen und sicher neu ladenSicherheit
- SSL/TLS aktivieren und verschlüsselte Verbindungen prüfen (pg_stat_ssl)Sicherheit
- Von md5-Passwörtern auf scram-sha-256 migrierenSicherheit
- Audit-Logs auf Rollen- und Objektebene mit pgaudit führenSicherheit
- Speichereinstellungen prüfen (shared_buffers, work_mem, maintenance_work_mem)Parameter
- Auf Neustart wartende Parameter und Fehler in Konfigurationsdateien anzeigenParameter
- Checkpoint-Verhalten prüfen (ab PG17 pg_stat_checkpointer, PG16 und früher pg_stat_bgwriter)Parameter
- Tabellengröße aufgeschlüsselt nach Heap / Index / TOAST und die größten Indizes auflistenSpeicher
- Extensions mit ausstehenden Updates finden und aktualisierenExtensions
- Mit pg_stat_io analysieren, woher I/O kommt (Backend-Typ, Objekt, Kontext)Extensions