我正在使用 PostgreSQL 8.4 并正在创建备用服务器。由于 PostgreSQL 8.4 没有内置复制支持,因此我做了以下事情,尝试获取对备用服务器的只读访问权限,而不是每天传输完整备份。
设置主服务器将 WAL 文件传输到备用服务器
postgresql.conf
archive_mode = on archive_command = 'scp -C %p standby:/var/lib/pgsql/backups/%f'
recovery.conf
在备用服务器上创建restore_command = 'mv /var/lib/pgsql/backups/%f %p' recovery_end_command = 'mv /var/lib/pgsql/data/recovery.{done,conf}'
pg_ctl restart -m fast
一天一次
然后我意识到 PostgreSQL 在初始启动时确实恢复了传输的 WAL 文件,但重启后却没有恢复。我在日志文件中找到了下一条消息。
LOG:选定的新时间线ID:2
看起来备用服务器已经在新的时间线上,但主服务器仍在发送旧时间线的 WAL 文件,这导致备用服务器无法恢复。
那么有没有什么办法可以实现我想要做的事情?
谢谢。