PostgreSQL流复制告警的处理

1、查看主库日志

# less /cache1/data/pg_log/postgresql-2014-01-17_000000.csv提示:2014-01-09 10:13:31.637 CST,\"postgres\",\"\",6159,\"218.107.217.79:33724\",52ce05cb.180f,1,\"idle\",2014-01-09 10:13:31 CST,39/0,0,FATAL,58P01,\"requested WAL segment 0000000600000082000000DD has already been removed\",,,,,,,,,\"walreceiver\"

显示预读写日志0000000600000082000000DD由于数据库经常在短时间内生成大量数据,因此已归档,SQL操作日志产生到预读写日志wal中,若pg_xlog下的wal数超过wal_keep_segments值,触发归档。walsender不能按时发送过程wal库存恢复,导致流复制中断。
2、备机停库

脚本命令参考数据库管理脚本

# /etc/init.d/postgresql-9.1 stop

3. 在主机上进行基本备份

# psql -U mato -h 127.0.0.1 -c \"select pg_start_backup(\'backups02\');\"

5. 同步wal文件在这里同步整个data可以测试只覆盖的目录wal的归档文件

# rsync -apurz -e \"ssh -p 端口\" /cache1/data/* root@远程IP:/opt/PostgreSQL/9.1/data/

6. 基础备份结束

# psql -U mato -h 127.0.0.1 -c \"select pg_stop_backup();\"

7.启动备机

# /etc/init.d/postgresql-9.1 start

8.查看日志,是的recevier即pitr流同步成功

# ps -ef|grep wal 、ps -ef |grep postgres