我复制了一个数据库,它工作正常,但是当我进入复制数据库时,它显示以下消息:
该数据库是使用排序规则 2.31 版创建的,但操作系统提供的是 2.35 版。
重建此数据库中使用默认排序规则的所有对象并运行 ALTER DATABASE template1 REFRESH COLLATION VERSION,或使用正确的库版本构建 PostgreSQL。
PgPool 也不能使用这个复制数据库,它只有在我删除它时才有效。
Pgpool 尝试登录时出现以下错误:
child pid 5286: ERROR: unable to read message kind
child pid 5286: DETAIL: kind does not match between main(53) slot[1] (4e)
同样的消息也出现在 postgresql 日志中。
如何重建我的数据库?
我按如下方式解决了问题
我不需要重建我的数据库,我不知道这是否会导致将来出现问题。
在执行此处的步骤之前,请备份您的数据库。
我的主数据库是大约 3 个月前创建的,我的复制数据库是最近创建的,这意味着即使两台服务器是 ubuntu 22.04,它们的 LTS 版本也不同,并且不是通过简单的方式解决的
apt upgrade
我系统的排序规则版本不同,要更新主排序规则,我必须更新 ubuntu LTS 版本
我使用以下命令更新 ubuntu master
之后,我使用了从错误日志本身获得的以下命令
由@laurenz-albe 更新
在此之后必须更新索引以避免通过运行 REINDEX 破坏数据库