【问题标题】:Postgres Replication: Incomplete Startup PacketPostgres 复制:不完整的启动包
【发布时间】:2014-05-04 02:09:16
【问题描述】:

我最近在单个主/从之间配置了 PostgreSQL 9.3 热备复制。

我今天再次检查了我的备用服务器,它似乎无法在重启时完成并退出恢复模式:

2014-03-25 22:36:07 UTC LOG:  entering standby mode
2014-03-25 22:36:07 UTC LOG:  incomplete startup packet
2014-03-25 22:36:07 UTC LOG:  redo starts at 7/E1091840
2014-03-25 22:36:07 UTC LOG:  consistent recovery state reached at 7/E10929C8
2014-03-25 22:36:07 UTC LOG:  record with zero length at 7/E10929C8
2014-03-25 22:36:07 UTC LOG:  started streaming WAL from primary at 7/E1000000 on timeline 1
2014-03-25 22:36:08 UTC FATAL:  the database system is starting up
2014-03-25 22:36:08 UTC FATAL:  the database system is starting up
2014-03-25 22:36:09 UTC FATAL:  the database system is starting up
... more ...
2014-03-25 22:36:13 UTC LOG:  incomplete startup packet

我尝试手动将 WAL 记录从主服务器复制到从服务器,我得到了同样的错误,所以我想知道主服务器上的 WAL 记录是否有问题?

【问题讨论】:

  • 更可能是网络问题,可能是防火墙允许 TCP 握手但没有实际数据流动。
  • 感谢@CraigRinger。但是,我可以通过 psql 手动连接并创建一个表,所以我认为这不是问题所在。我会继续寻找。

标签: postgresql database-replication postgresql-9.3


【解决方案1】:

我解决了同样的问题

 psql -c "select pg_start_backup('initial_backup');"
 rsync -cva --inplace --exclude=*pg_xlog* /var/lib/postgresql/9.1/main/ slave_IP_address:/var/lib/postgresql/9.1/main/
 psql -c "select pg_stop_backup();"

here is a good tutorial !!

【讨论】:

    【解决方案2】:

    我在 PostgreSQL 9.4 上遇到了同样的问题

    原因是在我的系统中 postgresql.conf 和 pg_hba.conf 位于 /etc/postgresql 中,所以在 pg_startbackup 期间它们没有从 master 进入待机

    因此,我在主服务器上有 wal_level = hot_standby,在备用服务器上有默认 wal_level = minimum。这会在日志中生成相同的图片。

    我的决定是在待机状态下修复 postgresql.conf。在待机开始后,确定并表示已准备好接受只读连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 2019-02-14
      • 1970-01-01
      • 2017-01-08
      • 2016-08-21
      • 1970-01-01
      相关资源
      最近更新 更多