PostgreSQL 不同主要版本的 pg_dump 和 pg_restore

2024-05-01

我的开发机器(称之为 D)运行 PostgreSQL 9.4.5。我的生产机器(称之为 P)运行 PostgreSQL 8.4.20。

我不使用 PostgreSQL 9.x 中的任何新功能或类型。

有时我需要在 D 上镜像 P 的状态,有时我需要做相反的事情。在这两种情况下我都使用 pg_dump/pg_restore。

当我从 P 转储恢复到 D 时,我从未遇到过任何错误或警告。但是,当我执行相反的操作时,我会得到多个unrecognized configuration parameter "lock_timeout"错误。我知道这个配置参数是在 9.3 中引入的,并且由于恢复过程的其余部分工作正常,我只是忽略错误消息。

我的问题是:跨不同主要版本使用 pg_dump/pg_restore 是一个坏主意吗?还是可以安全地忽略兼容性错误,就像我在这里所做的那样?我以后还会被这个咬吗?我无法升级 P,为了安全起见,我是否应该将 D 降级到 8.4.20?


正如 PostgreSQL 文档 (https://www.postgresql.org/docs/14/app-pgdump.html https://www.postgresql.org/docs/14/app-pgdump.html) says:

由于 pg_dump 用于将数据传输到较新版本的 PostgreSQL,因此 pg_dump 的输出预计会加载到比 pg_dump 版本更新的 PostgreSQL 服务器版本中。 pg_dump 还可以从比其自身版本更旧的 PostgreSQL 服务器转储。 (目前,支持版本 8.0 的服务器。)但是,pg_dump 无法从比其主要版本更新的 PostgreSQL 服务器转储;它甚至会拒绝尝试,而不是冒险进行无效转储。另外,不保证 pg_dump 的输出可以加载到旧主要版本的服务器中 — 即使转储是从该版本的服务器中获取的。

因此,对于其他对此仍存疑问的人来说,不能保证从 PostgreSQL 服务器较新版本中,您对旧版本有 100% 的工作输出。但相反,效果会很好。

建议使用生产服务器,即使与开发服务器不同,至少也比它更新。

关于忽略兼容性错误:

将转储文件加载到旧服务器中可能需要手动编辑转储文件以删除旧服务器无法理解的语法。在跨版本情况下,建议使用 --quote-all-identifiers 选项,因为它可以防止不同 PostgreSQL 版本中不同的保留字列表引起的问题。

最后的建议是,如果您计划延长软件的使用寿命,请始终考虑升级,因为旧版本有一天会被弃用。当提出这个问题时,PgSQL 8 仍然有版本。现在您只有 9.6 版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL 不同主要版本的 pg_dump 和 pg_restore 的相关文章

随机推荐

  • 如何用 C# 实现自己的 TaS-Lock?

    因此 对于分配 我们需要选择使用 C Lock 或使用自行实现的 TaS Lock 我读到的有关 TaS Locks 的内容是 它使用 1 个原子步骤来读取和写入一个值 有人建议我们为此使用 C 中的 Interlocked 类 到目前为止
  • ASP.NET MaskedEditExtender 和 TextBox:无法输入零,解决方法吗?解决方案?

    我正在尝试在连接到 MaskedEditExtender 的文本框中输入 0 我的掩码设置为 NUMBER 13 2 其中 9999999999999 99 作为我的十进制掩码 问题是用户必须输入一个数字 该值可以为0 我测试了多次尝试尝试
  • 字符串中的换行符未写入文件

    我正在尝试编写一个程序来操作从文件中读取的 unicode 字符串 我想到了两种方法 一种方法是读取包含换行符的整个文件 执行几个正则表达式替换 然后将其写回另一个文件 另一种方法是读取包含换行符的整个文件 执行几个正则表达式替换 然后将其
  • 如何在 Android Studio 中显示丰富的布局编辑器? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 如何显示或使用 Android Studio 中讨论的丰富布局编辑器 更多信息我是 Java 新手 刚刚下载了 Android Studio 并创建了
  • CSS“Shrinkwrap”方法如何与 max-width 一起使用并且没有 BR 换行标记?

    我正在尝试创建一个最大宽度边界框 它将包裹文本 在空格上 不允许断字 并收缩到最长文本行的宽度 有关各种收缩包裹方法的演示 请参见http www brunildo org test IEMshrink to fit html http w
  • Android SQLite 通配符

    我正在尝试使用通配符元素进行查询 以在 SQLite 表中搜索特定变量中任意位置具有元素的条目 public String getCheckoutEntry String title String ISBN Wild card Syntax
  • 在哪里可以找到 Fluent NHibernate 教程?

    我用谷歌搜索并环顾四周 是否有人知道任何隐藏的宝石不在谷歌搜索的前几页中 The wiki https github com jagregory fluent nhibernate wiki 是你最好的选择 我有过几个流畅的 NHibern
  • 骆驼:我如何异步发送到端点

    如何在不等待端点的路由被处理的情况下向端点发送消息 也就是说 我的路由应该只分派消息并完成 wireTap endpoint 就是答案
  • Fabric.js canvas.toDataURL() 通过 Ajax 发送到 PHP

    当我需要创建具有透明背景的图像时 我遇到了问题 我还是不知道问题出在fabricjs还是php 当我发送带有彩色背景的图像时 一切正常 当我发送具有透明背景的图像时会出现问题 生成的图像是用黑色背景创建的 那么 让我更好地解释一下 当用户单
  • 无法使用 Rails 3.2 创建插件?

    我在最新版本中遇到了 Rails 问题 我创建了一个新应用程序 rails new MyProject 但我没有脚本 生成 只有脚本 rails 当我输入时 ruby script rails generate plugin my plug
  • 调用多个ajax调用

    ajax url jsonpCallback item contentType application json dataType jsonp success function data console log data var marku
  • 为什么存储开销会在 C# 数据类型中产生浪费?

    在副主题中存储开销 关于章节 C 5 0 简而言之书上有这样一条一般性注释 现在 我想知道为什么 struct 中的字段A造成空间浪费 或者 作者整篇笔记的要点是什么 Each byte字段占用1个字节 而每个long字段占用8个字节 这意
  • FirebaseRemoteConfigClientException:Firebase 安装无法获取用于提取的安装身份验证令牌

    我遇到异常 com google firebase remoteconfig FirebaseRemoteConfigClientException Firebase Installations failed to get installa
  • 如何删除因缩小以适合元素而自动换行引起的额外空间?

    我正在尝试使用收缩来贴合 container 它可以完美地工作 直到它包含的元素换行为止 这会使其扩展到 180 像素 screen dimensions width 250px height 100px background color
  • 串流期货列表的最有效方式

    我通过流式传输对象列表来调用异步客户端方法 该方法返回 Future 迭代调用后返回的 Future 列表的最佳方法是什么 以便处理先出现的 Future 注意 异步客户端仅返回 Future 而不返回 CompletableFuture
  • 如何获取ISP名称?

    如何在 Salesforce com 中捕获用户的 ISP 名称 该解决方案可以采用 Salesforce com 中的 JavaScript 例如 Apex VisualForce Pages 捕获用户 ISP 名称的网站示例是 http
  • 如何调试 Python 日志记录配置文件错误

    我已将 Python 的日志记录模块添加到我的代码中 以避免混乱的打印语句 但我却因配置错误而陷入困境 错误消息的信息不是很丰富 Traceback most recent call last File HDAudioSync py lin
  • 左反加入Spark?

    我定义了两个表 如下所示 val tableName table1 val tableName2 table2 val format new SimpleDateFormat yyyy MM dd val data List List mi
  • Bootstrap 速度很慢如何让它更快

    我的网站是 设计辣 http designspicy com 我的网站在 bootstrap css 和 js 期间速度很慢 加载时间 3 56秒 通过 平多姆 bootstrap css 97 9 kB bootstrap js 28 7
  • PostgreSQL 不同主要版本的 pg_dump 和 pg_restore

    我的开发机器 称之为 D 运行 PostgreSQL 9 4 5 我的生产机器 称之为 P 运行 PostgreSQL 8 4 20 我不使用 PostgreSQL 9 x 中的任何新功能或类型 有时我需要在 D 上镜像 P 的状态 有时我