Мне нужно переместить и обновить очень большую (~ 320 ГБ) базу данных PostGIS с сервера1 (PostgreSQL 9.1, PostGIS 1.5) на сервер2 (PostgreSQL 9.3, PostGIS 2.1).
Процесс обновления хорошо документирован . Проблема в том, что у меня недостаточно места на сервере server1, чтобы скопировать туда файл, проверить его, затем скопировать на сервер server2 и проверить суммы. Я старался:
- Передача дампа с сервера1 на сервер2 с помощью
nc
. - Запись файла дампа непосредственно в файловую систему server2, которая смонтирована на server1 с помощью
sshfs
.
Оба раза файл дампа кажется поврежденным. pg_restore
сломался в разных местах с ошибками вроде этого:
pg_restore: [compress_io] could not uncompress data: incorrect data check
Кто-нибудь может предложить лучший способ сделать это движение и обновить?
ОБНОВЛЕНИЕ: Попробовал NFS (и дал SSHFS еще одну попытку). Понятно, что эти удаленные файловые системы не могут надежно передавать столько данных . В результирующем файле SQL явно отсутствуют блоки, что приводит к синтаксическим ошибкам вроде этого во время импорта:
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;"