PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ich erhalte eine Fehlermeldung, dass der Block nicht geschrieben werden konnte .... der temporären Datei kein Speicherplatz auf dem Gerät übrig ... mit postgresql

OK. Da noch einige Fakten fehlen, ein Antwortversuch, um das Problem vielleicht zu verdeutlichen:

Es scheint, dass Ihnen der Speicherplatz ausgeht. Höchstwahrscheinlich, weil Sie nicht genügend Speicherplatz auf Ihrer Festplatte haben. Prüfen Sie auf einem Linux/Unix df -h zum Beispiel.

Um Ihnen zu zeigen, wie das passieren könnte:Bei einer Tabelle mit vielleicht 3 ganzen Zahlen belegen allein die Daten etwa 12Byte. Sie müssen etwas Overhead für die Zeilenverwaltung usw. hinzufügen. Auf eine andere Antwort Erwin erwähnte etwa 23Byte und verlinkte auf das Handbuch für weitere Informationen über. Außerdem muss zwischen den Zeilen möglicherweise etwas aufgefüllt werden usw. Also ein bisschen rechnen:

Selbst mit einer 3-Ganzzahl landen wir bei etwa 40 Byte pro Zeile. Wenn Sie bedenken, dass Sie 8.000.000 einfügen wollten, ergibt dies insgesamt 320.000.000 Byte oder ~ 300 MB (nur für unser 3-Ganzzahl-Beispiel und sehr grob).

Nun, Sie haben ein paar Indizes in dieser Tabelle, die Indizes werden auch während der Einfügungen wachsen. Ein weiterer Aspekt könnte ein aufgeblähter Tisch und Indizes sein, die mit einem Staubsauger gelöscht werden können.

Also, was ist die Lösung:

  1. Geben Sie Ihrer Datenbank mehr Speicherplatz zur Verfügung
  2. Teilen Sie Ihre Einsätze ein wenig mehr und stellen Sie sicher, dass Vakuum zwischen ihnen läuft