Wenn ich ein VACUUM auf eine bestimmte Tabelle machen möchte, erhalten ich immer folgende Fehlermeldung:
********** Error **********
ERROR: out of memory
SQL state: 53200
Detail: Failed on request of size 236317608.
*************************
Die Tabelle enthält 7 Millionen reltuples bei 135329 relpages
Muss ich etwas an der Konfiguration ändern oder ist diese Tabelle oder eine System-Tabelle korrupt?
Ich mache jetzt eine db_dump und restore..... nur zum testen...
Hat jemand einen sonstigen Tip?
Versuch mal den Parameter "maintenance_work_mem" zu erhöhen.
Ansonsten: wie sehen denn deine Konfigurationsparameter zur Speichernutzung aus?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
maintenance_work_mem ist auf 1024MB eingestellt.
Nach dem Restore auf einem anderen Server mit nur 256MB maintenance_work_mem, kann ich problemlos ein VACUUM auf die Tabelle ausführen...
Das beantwortet immer noch nicht meine Frage.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
ich habe die maintenance_work_mem auf 1960MB geändert und es kommt immer noch die gleiche Fehlermeldung. Wenn ich auf 2048MB gehe, erhalte ich die folgende Fehlermeldung:
ERROR: 2097152 is outside the valid range for parameter "maintenance_work_mem" (1024 .. 2097151)
Die weiteren Parameter sind:
max_connections = 500
shared_buffers = 1024MB
temp_buffers = 128MB
effective_cache_size = 6656MB
work_mem = 256MB
maintenance_work_mem = 1960MB
max_fsm_pages = 2000000
max_fsm_relations = 2000
wal_buffers = 128kB
Der Server hat 8GB Ram und läuft auf einem Windows 2003 R2 X64.
Postgres Version 8.3
Sieht nach einem Bug aus:
2097151 = 0x1FFFFF
wohl ein Überlauf
2097151 = 22 bitERROR: 2097152 is outside the valid range for parameter "maintenance_work_mem" (1024 .. 2097151)
1024 = 10 bit
macht in Summe 32 bit
nimm doch ein 64Bit Betrübssyschdem - und natürlich auch die 64bit version von PG![]()
Geändert von symbiont (30.04.2009 um 14:46 Uhr)
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
du hast die untere grenze vergessen - schau die fehlermeldung nochmal an ..
der begint bereits bei 10 bit - dazu nochmal 22 .. macht wieviel?
ok .. man muss es (Dir zuliebe) ja nicht gleich "bug" nennen ... aber die Fehlermeldung ist scheisse - dass musst zugeben .. ein bug wäre es, wenn bereits vorher eine prüfung vorgesehen waere die aber nicht greif - um gescheite fehlermeldungen zu liefern.
obwohl - bug ist schon korrekt - immerhin hat er die daten ja auch da reingekriegt - und es wird ein innerer zustand erzeugt, mit dem PG umgehen koennen sollte (vacuum). tut es aber nicht ..
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen