Wartung unter PostgreSQL

Aus Hackerspace Bielefeld Wiki
Version vom 4. April 2017, 21:01 Uhr von Admin (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Datenbank Tabellen Wartung unter PostgreSQL Da Tabellen auch in PostgreSQL mit der Zeit griß werden können müssen die Tabellen eigentlich regelmässig gewa…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Datenbank Tabellen Wartung unter PostgreSQL

Da Tabellen auch in PostgreSQL mit der Zeit griß werden können müssen die Tabellen eigentlich regelmässig gewartet werden.

Das Problem kann z.b. unter Bareos / Bacula passieren. Bareos / Bacula schreiben den Index in eine Datenbank. Da Tballen Zeilen, die sich ändern nur zum löschen markiert werden, aber nicht sofort gelöscht werden, wächst die Datenbank nach jedem Backup.

Damit dieser "verschwendete" Speicherplatz wieder genutzet werden kann, müssen die Tabelleneinträge geöscht werden. Es erfolgt dabei Allerdings nur ein löschen der Tabellen in Hauptspeicher. nicht auf der Festplatte. Das liegt daran, daß der Speicherplatz ja beim nächsten Backup und neuen Daten wieder gebraucht wird. Aber die Adatenbank wächst zumindest nicht mehr.

Unter MySQL müsste dazu in regelmässigen abständen ein Daten Ex- und Import stattfinden. Bei PostgreSQL gibt es dazu den Befehl vaccumdb.

Wenn in /etc/postgresql.conf der mittels

   autovacuum = on
   autovacuum_vacuum_threshold = 50
   autovacuum_analyze_threshold = 50

Der Vaccum Befehl eingeschaltet wird, dann wird im Beispiel alle 50 neuen Tabellenzeilen eine kleine Wartung ausgeführt.