Postgres 9.2到9.5升级正在丢失数据

时间:2016-08-14 14:17:48

标签: postgresql centos7 postgresql-9.2 postgresql-9.5

我们正在尝试将9.2生产的postgres集群升级到9.5。服务器正在运行带有Centos版本的Centos 7 - 目前是9.2.15我们正在从postgresql repo安装postgresql提供的postgresql9.5的rpm,目前是9.5.4。在测试和我们的开发集群中,升级工作没有问题,但我们的生产数据库上发生了一些我们无法弄清楚的事情。

9.2群集处于由起搏器控制的流复制中。我们一直在使用的步骤如下。

  1. 使用最新数据验证副本服务器是否处于良好状态,然后将计算机置于待机状态,停止9.2 db
  2. 手动启动9.2服务器以获取一些统计信息以便稍后验证(来自几个关键表的行数)
  3. 停止9.2服务器,安装9.5二进制文件。
  4. 初始化9.5 db
  5. 使用链接选项
  6. 运行pg_upgrade
  7. 运行pg_upgrade生成的完整真空分析脚本
  8. 我们在测试中发现的是,我们通过升级过程,手动启动9.5服务器以比较我们在升级之前立即收集的行数,并且我们看到的是不同的数据,有时甚至是大幅度的。此数据包括缺少的用户帐户等,这些不是易腐数据。

    我们已启用详细日志记录并已对其进行了审核,但在迁移过程中未发现任何错误。 9.5服务器启动没有投诉,如果我们不进行这些手动检查,我们就不会发现问题。

    还有其他人看过这个问题吗?

    唯一的' hack'在升级期间,直接来自postgres_upgrade手册页是为了处理centos backported的postgresql中的重命名选项。使用顶部答案中引用的pg_ctl的重命名 - https://dba.stackexchange.com/questions/50135/pg-upgrade-unrecognized-configuration-parameter-unix-socket-directory

2 个答案:

答案 0 :(得分:0)

通过这个思考(不,我没有遇到同样的问题),pg_upgrade的工作原理是重写系统目录,但将剩余的数据保留在磁盘上。如果行数发生变化,则非常令人担忧。然而9.2到9.5是一个相当大的步骤,所以有些地方可以发挥其他问题。

没有最模糊的想法实际问题是什么,我要尝试的第一件事是尝试在升级之前而不是之后运行真空分析。我想知道交易可见性是否存在问题。

我要尝试的第二件事是转到9.4然后查看是否有问题,如果没有,则转到9.5。

但是,我从来没有听说过这样的问题。

答案 1 :(得分:0)