PSQL 14主节点启动失败:时间线冲突问题求助
PostgreSQL 14实例安全恢复方案
结论
你的猜测完全正确——需要将实例切换回时间线4,时间线5是K8s控制平面失联期间异常生成的分支,与当前主节点的检查点历史不兼容,导致启动失败。
操作步骤
停止PostgreSQL服务(若实例仍在循环启动)
以postgres用户执行:pg_ctl stop -D /var/lib/postgresql/data -m immediate注:替换
/var/lib/postgresql/data为你的实际数据目录;若为Zalando托管实例,需通过其管理控制台执行停止操作。指定启动时间线
编辑postgresql.conf(或通过Zalando托管平台的配置界面),添加/修改参数:recovery_target_timeline = '4'启动PostgreSQL服务
以postgres用户执行:pg_ctl start -D /var/lib/postgresql/data或通过Zalando托管平台启动实例。
验证恢复状态
连接数据库后执行SQL确认时间线:SELECT current_timeline_id();返回值应为
4,同时检查业务数据完整性与服务可用性。清理冗余文件
删除archive_status目录下的时间线5相关文件:rm /var/lib/postgresql/data/archive_status/00000005.history.done
内容的提问来源于stack exchange,提问作者Guillaume Brunel
相关产品推荐
相关产品推荐

