我需要将一个非常大的(~320 GB) PostGIS数据库从server1 (PostgreSQL 9.1,PostGIS 1.5)移动到server2 (PostgreSQL 9.3,PostGIS 2.1)。
升级过程是有据可查。问题是我在server1上没有足够的空间将文件转储到那里,检查和它,然后将它复制到server2并验证和。我试过:
nc。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;"发布于 2015-08-12 18:01:20
我建议从新的9.3服务器中转储9.1数据库,如下所示:
pg_dump -h remoteserver -U remoteuser remotedbname -Fc -f my_old_server_backup.dump我建议使用9.3 pg_dump,因为pg_dump总是向后兼容,而不是前向兼容。换句话说,较新的pg_dump将处理新服务器需要的、旧的实用程序不知道的任何语法更改。
一定要确保您的pg_hba.conf和listen_addresses在postgresql.conf中的设置允许您进行适当的远程连接和转储。
如果您想在一步内尝试转储和恢复,也可以尝试如下:
pg_dump -h remotehost -U remoteuser remotedbname | psql -U localuser localdbname希望这能帮上忙。=)
发布于 2023-05-23 08:38:00
如果您需要移动大型Geodatabase,我建议您使用另一种方法:
https://dba.stackexchange.com/questions/110771
复制相似问题