根据日志文件,我收到以下错误。
“/usr/lib/postgresql/12/bin/pg_ctl” 找到了程序“postgres”,但其版本与 pg_ctl 不同。请检查您的安装。
我正在运行 Ubuntu 20.04。执行以下命令:
/usr/lib/postgresql/12/bin/postgres --版本
postgres (PostgreSQL) 12.16 (Ubuntu 12.16-0ubuntu0.20.04.1)
/usr/lib/postgresql/12/bin/pg_ctl --version
pg_ctl (PostgreSQL) 12.15 (Ubuntu 12.15-0ubuntu0.20.04.1)
我是否需要更新或执行某些任务,因为这会导致我的数据库服务器变得无用,并且我有一些无法访问的数据库?
答案1
由于我无法重新启动 PostgreSQL 服务器,我决定将数据文件复制/etc/postgresql/12/main
到另一台服务器并检查它是否有效。
在尝试在新服务器上测试此操作时,我安装了相同版本的 PostgreSQL 12,然后尝试检查控制寄存器和PostgreSQL 的。
postgres (PostgreSQL) 12.16 (Ubuntu 12.16-0ubuntu0.20.04.1)
pg_ctl (PostgreSQL) 12.16 (Ubuntu 12.16-0ubuntu0.20.04.1)
我很惊讶,版本竟然是一样的,不像我现在的服务器。因此,我将新服务器中的二进制文件从位置复制到了旧服务器/var/lib/postgresql/12
。
完成此操作后,我的 PostgreSQL 启动时没有任何问题或投诉。我知道这可能不是最好的方法,但它确实有效,并允许我转储数据。
然而,关于旧服务器的版本如何变化的问题仍然存在。