You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu升级后PostgreSQL repmgr排序规则版本不匹配警告无法消除

解决方案

问题核心是仅在primary节点执行操作无法同步集群内所有节点,且REINDEX DATABASE未彻底重建所有依赖默认collation的对象。需按以下步骤全集群处理:

  1. 彻底重建primary节点的repmgr数据库
    导出并重新创建数据库,确保所有对象使用当前系统的collation版本:

    # 备份repmgr数据库
    pg_dump -d repmgr -f repmgr_backup.sql
    # 删除原数据库
    dropdb repmgr
    # 重新创建数据库(自动继承系统当前collation)
    createdb repmgr
    # 导入备份数据
    psql -d repmgr -f repmgr_backup.sql
    
  2. 重置standby节点
    Standby节点依赖primary的复制流,需重新克隆同步:

    # 停止standby节点的PostgreSQL服务
    sudo systemctl stop postgresql
    # 清理原数据目录(提前备份重要数据)
    sudo rm -rf /var/lib/postgresql/<你的PostgreSQL版本>/main
    # 从primary节点克隆新的standby数据
    repmgr standby clone -h <primary节点IP> -U repmgr -d repmgr
    # 启动PostgreSQL服务
    sudo systemctl start postgresql
    # 重新注册到集群
    repmgr standby register
    
  3. 重建witness节点的repmgr数据库
    Witness节点需重新创建数据库并注册:

    # 进入psql终端
    psql -U postgres
    # 删除原repmgr数据库
    dropdb repmgr
    # 重新创建数据库
    createdb repmgr
    # 退出psql后重新注册witness
    repmgr witness register -h <primary节点IP> -U repmgr -d repmgr
    
  4. 验证修复结果
    在任意节点执行命令确认警告消失:

    repmgr cluster show
    

注意事项

  • 操作前务必备份所有节点的数据库数据,防止数据丢失。
  • 确保repmgr用户在所有节点拥有SUPERUSER或足够的操作权限。
  • 操作过程中集群会短暂不可用,建议在业务低峰期执行。

内容的提问来源于stack exchange,提问作者Duarte Petiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:33:21