我与CATALOG_VERSION_NO
有冲突。Postgresql 15.4和pg_control报告说,集群是用版本202307071初始化的,但服务器是用202209061编译的。PG_VERSION
包含15。Postgresql 16.0报告说,数据库是用版本15创建的,将PG_VERSION
更改为16会创建一组新的错误。
有没有一种方法可以在不丢失数据的情况下解决此冲突?
我与CATALOG_VERSION_NO
有冲突。Postgresql 15.4和pg_control报告说,集群是用版本202307071初始化的,但服务器是用202209061编译的。PG_VERSION
包含15。Postgresql 16.0报告说,数据库是用版本15创建的,将PG_VERSION
更改为16会创建一组新的错误。
有没有一种方法可以在不丢失数据的情况下解决此冲突?
1条答案
按热度按时间b4wnujal1#
字符串
是的,目录版本意味着主要版本(如果目录版本介于与主要版本相关的版本之间,这意味着您正在使用数据库的某个开发版本,如日常版本、beta版本或候选版本。但这里不是这种情况)。您在尝试启动服务器时使用的二进制文件似乎是v15。数据目录显然是由v16初始化的。
然而,如果只是这样,你应该得到用户友好的错误:
数据目录是由PostgreSQL版本16初始化的,与此版本15.4不兼容。
事实上,你没有得到这个信息,这表明你已经有某种腐败在进行,但我们没有办法仅仅从这个知道腐败有多严重。
最简单的解释是,它是一个v16数据库,但不知何故PG_VERSION被更改为15。但是:
将PG_VERSION更改为16会创建一组新错误。
显然,简单的情况并不是发生的事情。你得到的那些错误是什么?在这一点上,你应该争夺任何备份,你可能有,并确保你有一个只读的副本,这样你就不会意外地损坏他们的唯一副本,你有(一个令人惊讶的常见事件时,人们恐慌)。