Devo spostare e aggiornare un database PostGIS molto grande (~ 320 GB) da server1 (PostgreSQL 9.1, PostGIS 1.5) a server2 (PostgreSQL 9.3, PostGIS 2.1).
Il processo di aggiornamento è ben documentato . Il problema è che non ho abbastanza spazio su server1 per scaricare il file lì, eseguirne il checksum, quindi copiarlo su server2 e verificare le somme. Provai:
- Piping del dump da server1 a server2 utilizzando
nc
. - Scrivere un file di dump direttamente su un filesystem server2 che è montato su server1 usando
sshfs
.
Entrambe le volte il file di dump sembra essere stato danneggiato. pg_restore
rotto in luoghi diversi con errori come questo:
pg_restore: [compress_io] could not uncompress data: incorrect data check
Qualcuno può suggerire un modo migliore per eseguire questa mossa e l'aggiornamento?
AGGIORNAMENTO: Ho provato NFS (e ha dato a SSHFS un altro tentativo). È chiaro che questi filesystem remoti non possono trasferire in modo affidabile così tanti dati . I blocchi mancano visibilmente dal file SQL risultante, causando errori di sintassi come questo durante l'importazione:
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;"