Seite 1 von 1

Tablespace nach DB Fehler zu groß

Verfasst: Fr 1. Nov 2019, 10:53
von BeLiaRN1
Hallo,

ich bin ein postgres Einsteiger und habe folgendes Anliegen:

Der Tablespace einer Datenbank wurde riesig nach einem DB Fehler und verbrauchte in kürzester Zeit den kompletten Speicher auf der Platte.
Der Fehler und damit auch der Speicherverbrauch konnten zwar behoben werden, allerdings ist der Tablespace nach wie vor sehr groß.
Momentan sehe ich hier im Tablespace Directory ca. 30 Dateien mit jeweils einer Größe von 1 GB.

Gibt es eine Möglichkeit diesen zu verkleinern/löschen?
Wir setzen übrigens Posgresql 10 ein. Habt ihr da eine Idee?

Re: Tablespace nach DB Fehler zu groß

Verfasst: Fr 1. Nov 2019, 11:13
von akretschmer
  • was für ein Fehler?
  • was wurde wie behoben?
  • Autovacuum läuft?

Re: Tablespace nach DB Fehler zu groß

Verfasst: Fr 1. Nov 2019, 11:23
von BeLiaRN1
Zum Fehler kann ich nicht viel sagen. Hervorgerufen wurde der Fehler durch ein Update der darüberlingenden Anwendung die seitens des Herstellers später wieder behoben wurden. Anscheinend gab es diverse falsche Verlinkungen zur Datenbank.
Autovacuum ist momentan auskommentiert.

Re: Tablespace nach DB Fehler zu groß

Verfasst: Fr 1. Nov 2019, 11:34
von akretschmer
  • was zeigt in psql dieser Befehl an: "show autovacuum;" bzw. von einem SQL-Client aus "select setting from pg_settings where name = 'autovacuum';" an?
  • was zeigt "select pg_size_pretty(pg_database_size('test'));" an? (test mit dem Namen der DB ersetzen!)
  • wenn ihr für gewisse Zeit eine Downtime akzeptieren könnt: "vacuum full;" ACHTUNG: das erzeugt Sperren dergestallt, daß die Applikation für die Zeit, wo das läuft, nicht zugreifen kann, UND: es benötigt vorübergehend noch einmal bis ca. dem doppelten Platz, was jetzt schon belegt ist
Schon mal über einen Supportvertrag nachgedacht?

Re: Tablespace nach DB Fehler zu groß

Verfasst: Fr 1. Nov 2019, 11:44
von BeLiaRN1
1. on
2. 31 GB
3. Probiere ich aus, einfach "vacuum full"?

Re: Tablespace nach DB Fehler zu groß

Verfasst: Fr 1. Nov 2019, 11:46
von akretschmer
Okay, damit läuft Autovacuum. Ja, einfach "vacuum full;", das wird aber einige Zeit dauern, alle Anwendungen auf der DB müssen warten und es kann vorübergehend noch einmal bis zu 31GB auf Platte belegen.

Re: Tablespace nach DB Fehler zu groß

Verfasst: Mo 4. Nov 2019, 08:50
von BeLiaRN1
Vielen Dank, das hat schon geholfen. Die DB ist danach nur noch 2 GB groß. Was ich noch nicht verstehe ist, warum ist autovacuum auf on gestellt wenn es doch auskommentiert ist in der postgres.conf?

Re: Tablespace nach DB Fehler zu groß

Verfasst: Mo 4. Nov 2019, 08:52
von akretschmer
die postgresql.conf enthält alle möglichen zu setzenden Parameter, wenn Werte da auskommentiert stehen sind das die Default-Werte. Siehe auch die Datei selber, sie enthält diesen Kommenta:

Code: Alles auswählen

# The commented-out settings shown in this file represent the default values.