Zum Anfang: ich hab das schon 2x auf diese Weise gemacht und es hat fehlerfrei geklappt. Wie übolich hab ich den neuen Server installiert, mit dem neuen pg_dump/pg_dumpall die alte DB ausgelesen und in die neue gepiped. Dabei trat bei einem zugegebener Massen sehr grossen Geometriefeldern (Binärformat) folgender Fehler auf der jeweils die ganze Transaktion zum Erliegen brachte:
ERROR:* out of memory
DETAIL:* Cannot enlarge string buffer containing 0 bytes by 1597848223 more bytes.
Ich habe das dann auf verschieden Arten und Weisen mal mit zwischenspeichern, mal erst Schema erzeugen, dann Daten einspielen versucht mit immer demselben Ergebnis. Dier Lösung war schliesslich, statt dem Copy-Befehl, den pg_dump verwendet inserts zu machen.
Was ist der Grund für dieses Verhalten? Kann man das irgendwie umgehen? >200GB Geodaten per Insert upzugraden ist , nunja, ermüdened
Ich würde mal an den Speichereinstellungen drehen, aber 1597848223 Bytes ist ne Menge Holz. Sind die Einstellungen bzgl. Speicher in beiden postgresql.conf - Dateien gleich?
Ja, beides auf default, da wird sich wohl nichts geändert haben. Bisher traten solche Probleme auch nicht auf, in Ermangelung von Polygonen aus x00000 Punkten…
Ursprünglich eingelesen wurden sie mit shp2pgsql, das per default auch inserts generiert. Gibts da einen signifikanten Unterschied wie Copy und Insert so ein Feld mit Binärdaten behandeln?
Danke für die Links. Leider liefert er keine Erklärung, warum Copy und Insert unterschiedliches Verhalten zeigen beim gleichen Datensatz. Naja, nu gehts ja und ich bin glücklich und zufrieden