Problem mit Vacuum Funktion

Hallo,

ich kriege seit heute folgende Fehlermeldung wenn ich Vacuum Full + Analyse ausführe (Postgres 9.2)
Was mich sehr verwundert, ist die Tatsache, dass ich noch über 40 GB freien Speicher auf dem Laufwerk besitze.
Die Datenbank selbst hat wohl auch so um die 50GB.


INFO: vacuume »pg_catalog.pg_class«
INFO: »pg_class«: 3 entfernbare, 417 nicht entfernbare Zeilenversionen in 10 Seiten gefunden
DETAIL: 0 tote Zeilenversionen können noch nicht entfernt werden.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: analysiere »pg_catalog.pg_class«
INFO: »pg_class«: 10 von 10 Seiten gelesen, enthalten 416 lebende Zeilen und 3 tote Zeilen; 416 Zeilen in Stichprobe, schätzungsweise 416 Zeilen insgesamt
INFO: vacuume »public.handhistories«
INFO: »handhistories«: 0 entfernbare, 34663757 nicht entfernbare Zeilenversionen in 5315212 Seiten gefunden
DETAIL: 0 tote Zeilenversionen können noch nicht entfernt werden.
CPU 84.89s/48.70u sec elapsed 705.35 sec.
FEHLER: konnte Datei »base/16864/2049179« nicht erweitern: No space left on device
HINT: Prüfen Sie den freien Festplattenplatz.


FEHLER: konnte Datei »base/16864/2049179« nicht erweitern: No space left on device
HINT: Prüfen Sie den freien Festplattenplatz.


Hat jemand einen Tipp wie ich dieses Problem lösen kann?

Danke und Gruß
Mathilda

Schau, welche Tabelle relfilenode = 2049179 in pg_class hat. Vielleicht ist die wirklich zu groß, vielleicht kannst die separat mit VACUUM behandeln, …

Hey, vielen Dank für den schnellen Tipp.
Wo kann ich denn sehen, welche Tabelle relfilenode = 2049179 in pg_class hat?

Ich finde pg_class unter postgreSQL und dann Tabellen. darunter habe ich dann aber nur spalten und indizes.

Wenn ich dies Vacuum behandele kommt folgendes:
INFO: vacuume »pg_catalog.pg_class«
INFO: »pg_class«: 14 entfernbare, 417 nicht entfernbare Zeilenversionen in 10 Seiten gefunden
DETAIL: 0 tote Zeilenversionen können noch nicht entfernt werden.
CPU 0.00s/0.00u sec elapsed 0.01 sec.
INFO: analysiere »pg_catalog.pg_class«
INFO: »pg_class«: 10 von 10 Seiten gelesen, enthalten 416 lebende Zeilen und 3 tote Zeilen; 416 Zeilen in Stichprobe, schätzungsweise 416 Zeilen insgesamt


Gesamtlaufzeit der Abfrage: 80 ms.

Wenn ich unter public schaue, kann ich allerdings kein pg_class finden.

Könnt ihr mir nochmal weiterhelfen. Bin ein wirklich ganz großer Anfänger im selber administrieren der Datenbank

Danke,
Mathilda


Edit:
Habe mir eben eine Query gebaut im Query Editor auf pg_class

SELECT
pg_class.relfilenode,
pg_class.relname
FROM
pg_catalog.pg_class
WHERE
pg_class.relfilenode = 2049179
ORDER BY
pg_class.relname ASC;


Rückmeldung keine.

Ja, bist nah dran. Mach es in der Datenbank, wo oid von pg_database 16864 ist. Also, select datname from pg_database where oid = 16864;

Danke für den Tipp. Dann gibt er mir den namen der ganzen Datenbank zurück ://

Also die, welche ich ursprüngliche auch bereinigen wollte …

hmm…
habe jetzt nur dein SQL statement ausgeführt. das war korrekt, oder fehlt mein zusatz?

kann jemand helfen?

Remote wohl nicht. Vermutlich, vermute ich mal, stimmt aber die Fehlermeldung von wegen kein Weltraum links von Gerät oder so …

What ?! Da kann ich Dir leider nicht folgen …
Magst Du das nochmal übersetzen für mich?!

Ach mann…, ähm, Frau…

Ich vermute, daß die von Dir im ersten beitrag genannte Fehlermeldung von wegen ‘no space left on device’, also ‘kein Weltraum links von Gerät’ oder in deutsch: “Pladde voll!” stimmt.

Hint ist übersetzt: Hinweis. Damit sollte nun “HINT: Prüfen Sie den freien Festplattenplatz.” klar sein, oder?

Yo … danke für die ÜBERSETZUNG :slight_smile:

Es heißt doch immer es gibt keine dummen Fragen :-0

Was mich halt wundert ist, dass ich noch 40GB Platte frei habe.
Während die Gesamt DB vlt. 50GB hat. Aber er lagert doch nicht die ganze DB aus bei Vacuum, oder wie funktioniert das genau?

Vacuum (full) schreibt die Tabelle neu. Wenn Du eine Tabelle hast, die 41 GB groß ist, und diese wird neu geschrieben, dann fehlt halt bei Dir 1 GB.

Wichtig wäre, erst einmal rauszubekommen, ob Du so große Tabellen hast. Wir können übrigens auch von hier aus nicht sehen, ob wirklich noch 40GB frei und für PG verfügbar sind.

Übrigens:

“INFO: »handhistories«: 0 entfernbare, 34663757 nicht entfernbare Zeilenversionen in 5315212 Seiten gefunden”

Rechne mal aus, wie viel 5315212 mal Seitengröße (HINT: 8KB) sind. Und Du willst ein Vaccum full…

Und nun? Format C:?

Kann ich denn gar nichts tun?

Nu stell Dich mal nicht so an - Festplatten kosten nicht die Welt.

Nun … ich habe bereits eine 256GB SSD RAM. eine 512 GB SSD RAM ist schon ziemlich teuer.

Wie ist es denn, wenn ich nur Vacuum mache und nicht Vacuum Full?
Ist das ein Workaround?

Probier es doch mal :wink: