PostgreSQL 主从复制中断的定位与恢复
备库不再接收/回放 WAL,pg_stat_replication 在主机上为空,备库 pg_last_wal_receive_lsn 停止增长。日志出现 could not receive data from WAL stream 或 timeline 错误。
主机:
SELECT * FROM pg_stat_replication;
SELECT slot_name, active, restart_lsn FROM pg_replication_slots;
备库:
SELECT pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn(),
now() - pg_last_xact_replay_timestamp();
SHOW primary_conninfo;
journalctl -u postgresql --since '30 min ago'
df -h
pg_hba.conf 变更。pg_rewind 或重新 pg_basebackup。primary_conninfo 和 timeline。psql — 复制状态pg_rewind — 修复分叉pg_basebackup — 重建备库pg_waldump — WAL 分析