【问题标题】:Restoring postgreSQL 9.1 backup to 8.1将 postgreSQL 9.1 备份恢复到 8.1
【发布时间】:2013-12-27 05:09:31
【问题描述】:

我想将 postgreSQL 备份从 9.1 版(本地使用)恢复到更早的版本:8.1(在服务器上)

我可以在不升级服务器的情况下执行此操作吗?

我尝试使用 pg_dump 创建 SQL 转储。

当我尝试恢复它时,我收到一条错误消息: 错误:参数“standard_conforming_strings”无法更改

和 错误:在字符 365 处或附近出现语法错误 第 17 行:geom900913 几何(MultiPolygon,900913),

我尝试在 9.1 postgres.conf 中将 standard_conforming_strings 设置为关闭,但我仍然收到此消息。

postgres 9 是否更改了几何列的配置?

【问题讨论】:

  • 也许我需要设置 postgreSQL 8.1 数据库以便它使用 postGIS?这可以解释为什么它不能识别几何列。如果是这样,我该怎么做?
  • 如果真的是降级而不是升级。而且您无论如何都不应该使用8.1。但你的问题的答案很明确:不。您不能在较低版本中使用在较高版本中生成的转储(至少不能手动编辑生成的 SQL 文件)。
  • 我准备手动编辑 SQL 文件。

标签: postgresql


【解决方案1】:

降级通常具有挑战性。

特别是,如果您的新服务器运行 PostGIS 2,而您的旧服务器运行 1.x,您将没有太多机会将备份恢复到旧服务器。 PostGIS 具有新的数据类型、新的数据表示、不同的功能和目录表等等。我强烈怀疑您必须将数据导出到 shapefile,然后在旧版本上使用 shp2pg 重新加载它们。

如果它们都在同一个 PostGIS 上(两者都是 1.x 或 2.x),您可以使用 pg_dump -Fc 进行备份,然后使用 pg_restore 将其从 9.1 还原到 8.1 .这将检测目标服务器的版本并处理参数不兼容等问题。您可能需要使用 8.1 的 pg_dumppg_restore,但请先尝试使用 9.1。

8.1 已过时、不受支持,并且未收到错误或安全修复。请考虑使用文档中描述的升级过程将您的 8.1 服务器升级到 9.1 或更高版本,而不是降级。降级会带来很多痛苦而没有真正的好处,然后您将不得不很快再次升级。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2014-09-03
    • 2010-10-05
    • 2020-09-25
    • 2018-10-12
    • 2020-11-29
    • 1970-01-01
    相关资源
    最近更新 更多