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

使用pgBackRest 2.38进行PostgreSQL 13时间点恢复后数据库无法启动

PostgreSQL 13时间点恢复后pgBackRest启动失败的排查与解决

核心报错分析

从日志可定位两个关键问题:

  1. 认证超时导致连接中断:FATAL: canceling authentication due to timeout
  2. 数据目录存在锁文件,提示已有Postmaster进程(PID 40)运行:FATAL: lock file "postmaster.pid" already exists

分步解决步骤

1. 清理残留进程与锁文件

  • 检查PID 40是否存活:
    ps -ef | grep 40 | grep -v grep
    
  • 若进程存在,强制终止:
    kill -9 40
    
  • 删除数据目录下的锁文件:
    rm -f /pgdata/pg13/postmaster.pid
    
    注意:删除前务必确认进程已完全终止,防止数据损坏

2. 修复认证超时问题

认证超时多因恢复后pg_hba.conf配置异常或认证参数不合理:

  • 临时调整pg_hba.conf,允许本地信任连接(恢复完成后需改回安全配置):
    在文件中添加/修改:
    local   all             all                                     trust
    host    all             all             127.0.0.1/32            trust
    
  • 调整postgresql.conf的认证超时参数:
    将默认60s临时调至120s:
    authentication_timeout = 120s
    

3. 重新启动与验证

  • 手动启动PostgreSQL:
    pg_ctl start -D /pgdata/pg13
    
  • 验证恢复状态:
    psql -c "SELECT now();"
    psql -c "SELECT * FROM pg_stat_activity;"
    

4. 恢复安全配置

启动验证完成后,将pg_hba.conf还原为原有安全规则,同时把authentication_timeout调回默认值(若无需长期修改)。

内容的提问来源于stack exchange,提问作者jobin george

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:42:19