首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动大型PostgreSQL/PostGIS数据库

移动大型PostgreSQL/PostGIS数据库
EN

Database Administration用户
提问于 2015-08-12 09:24:29
回答 2查看 1.6K关注 0票数 8

我需要将一个非常大的(~320 GB) PostGIS数据库从server1 (PostgreSQL 9.1,PostGIS 1.5)移动到server2 (PostgreSQL 9.3,PostGIS 2.1)。

升级过程是有据可查。问题是我在server1上没有足够的空间将文件转储到那里,检查和它,然后将它复制到server2并验证和。我试过:

  • 使用server1将转储从server2传输到nc
  • 将转储文件直接写入使用server2安装在server1上的sshfs文件系统。

两次转储文件似乎都已损坏。pg_restore在不同的地方出现了这样的错误:

pg_restore: [compress_io] could not uncompress data: incorrect data check

有人能提出更好的方法来完成这个移动和升级吗?

更新:已尝试NFS (并给SSHFS另一次尝试)。显然,这些远程文件系统无法可靠地传输这么多数据。块明显地从结果SQL文件中丢失,导致在导入过程中出现如下语法错误:

代码语言:javascript
复制
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;"
EN

回答 2

Database Administration用户

回答已采纳

发布于 2015-08-12 18:01:20

我建议从新的9.3服务器中转储9.1数据库,如下所示:

代码语言:javascript
复制
pg_dump -h remoteserver -U remoteuser remotedbname -Fc -f my_old_server_backup.dump

我建议使用9.3 pg_dump,因为pg_dump总是向后兼容,而不是前向兼容。换句话说,较新的pg_dump将处理新服务器需要的、旧的实用程序不知道的任何语法更改。

一定要确保您的pg_hba.conflisten_addressespostgresql.conf中的设置允许您进行适当的远程连接和转储。

如果您想在一步内尝试转储和恢复,也可以尝试如下:

代码语言:javascript
复制
pg_dump -h remotehost -U remoteuser remotedbname | psql -U localuser localdbname

希望这能帮上忙。=)

票数 7
EN

Database Administration用户

发布于 2023-05-23 08:38:00

如果您需要移动大型Geodatabase,我建议您使用另一种方法:

  1. 从新数据库中重新创建DDL的原始架构。
  2. 创建远程数据库包装器,并将远程表导入临时模式(例如。old_schema_temp)。
  3. 按照数据模型结构将数据从远程表移动到架构中。
  4. 删除远程数据库包装器
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/110771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档