【问题标题】:pg_dump 9.0 to pg_restore 8.3pg_dump 9.0 到 pg_restore 8.3
【发布时间】:2011-04-04 07:45:57
【问题描述】:

是否可以指示 9.0 的 pg_dump 提供向后兼容的转储,或强制 8.3 的 pg_restore 使用该转储?

换句话说,在使用 pg_restore 8.3 恢复使用 9.0 制作的转储时,我有哪些选项可以解决此错误:

pg_restore: [archiver] unsupported version (1.12) in file header

此转储/恢复版本冲突有哪些可能的警告?

【问题讨论】:

标签: postgresql backup restore


【解决方案1】:

创建纯文本转储:

pg_dump mydb > db.sql
psql -d newdb -f db.sql

这应该可以正常工作,因为它不存储版本信息,并且在转储中使用纯 SQL 格式。数据是用 COPY 恢复的,所以速度很快。如果您在数据库中使用了一些 9.0 功能,那么您必须手动编辑转储中的模式以使其在 8.3 上工作。但是,Blob 可能无法在这种格式中存活;我没有测试过)。

【讨论】:

  • 备案 - 纯文本 pg_dump 转储 CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql 而 8.3 仅支持 CREATE LANGUAGE plpgsql
猜你喜欢
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 2018-11-28
  • 2013-05-21
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多