Ich muss eine sehr große PostGIS-Datenbank (~ 320 GB) von Server1 (PostgreSQL 9.1, PostGIS 1.5) auf Server2 (PostgreSQL 9.3, PostGIS 2.1) verschieben und aktualisieren .
Der Upgrade-Prozess ist gut dokumentiert . Das Problem ist, dass auf Server1 nicht genügend Speicherplatz vorhanden ist , um die Datei dort abzulegen, zu überprüfen , dann auf Server2 zu kopieren und die Summen zu überprüfen. Ich habe es versucht:
- Piping des Dumps von Server1 zu Server2 mit
nc
. - Schreiben einer Dump-Datei direkt in ein Server2- Dateisystem, das mit Server1 gemountet wird
sshfs
.
Beide Male scheint die Dump-Datei beschädigt worden zu sein. pg_restore
brach an verschiedenen Stellen mit Fehlern wie diesen:
pg_restore: [compress_io] could not uncompress data: incorrect data check
Kann jemand einen besseren Weg vorschlagen, um diesen Schritt und dieses Upgrade durchzuführen?
UPDATE: NFS ausprobiert (und SSHFS erneut versucht). Es ist klar, dass diese Remote-Dateisysteme nicht so viele Daten zuverlässig übertragen können . In der resultierenden SQL-Datei fehlen sichtbar Blöcke, was beim Import zu folgenden Syntaxfehlern führt:
ERROR: invalid input syntax for integer: "8266UPDATE spatial_ref_sys o set auth_name = n.auth_name, auth_srid = n.auth_srid, srtext = n.srtext, proj4text = n.proj4text FROM _pgis_restore_spatial_ref_sys n WHERE o.srid = n.srid;"
quelle
Antworten:
Ich würde empfehlen, die 9.1-Datenbank wie folgt von Ihrem neuen 9.3-Server zu sichern:
Ich empfehle die Verwendung von 9.3,
pg_dump
dapg_dump
es immer abwärtskompatibel, aber nicht vorwärtskompatibel ist. Mit anderen Worten, der neuerepg_dump
kümmert sich um alle Syntaxänderungen, die der neue Server benötigt, von denen das ältere Dienstprogramm nichts weiß.Stellen Sie sicher, dass Ihr
pg_hba.conf
undlisten_addresses
inpostgresql.conf
so eingerichtet sind, dass Sie auch eine Remoteverbindung herstellen und einen entsprechenden Speicherauszug erstellen können.Wenn Sie einen Speicherauszug versuchen und in einem Schritt wiederherstellen möchten, können Sie dies auch versuchen:
Ich hoffe, das hilft. =)
quelle