我正在对 PostgreSQL 复制进行概念验证。在论坛上讨论后,我们决定使用流式复制,因为与其他解决方案相比,它的性能很好。PostgreSQL 不为流式复制提供自动故障转移。我们可以使用触发文件将从站切换到主站,但它是不可管理的。所以我想要一个具有自动故障转移和高可用性的解决方案。
有不同的解决方案:
我的问题是应该使用哪种解决方案?
我正在使用它repmgr作为我的复制工具。在从站上我不断收到错误:
请求的 WAL 段已被删除
当我检查主时,确实它不在那儿;但是,它位于从属目录中的pg_xlogs和中pg_xlogs/archive_status。我不明白为什么它会寻找这个文件,如果它已经在从站中?
事实上,它已经xlogs超出了要求的范围。如何处理 Postgres Slave 重置的 WAL 文件中的解决方案针对的是略有不同的问题。它们似乎适用于主服务器在从服务器接收日志文件之前删除日志文件的场景。就我而言,它在从属文件和所请求的文件之后的序列中的其他几个文件中非常频繁地出现。
这也告诉我,我不需要增加 keep wal 分段选项,因为它似乎没有落后?
我正在使用 PostgreSQL 热备份运行测试,有 1 个主站,正好有 1 个从站。
我正在使用本指南中的说明:http : //www.howtoforge.com/how-to-set-up-a-postgresql-9.0-hot-standby-streaming-replication-server-with-repmgr-on-opensuse -11.4
我使用的是 PostgreSQL 9.1 版、repmgr 1.1.0 和 Ubuntu 10.04 LTS。
我按照我跑的指南中的步骤进行了步骤 6
repmgr -D /var/lib/postgresql/9.1/main -d pgbench -p 5432 -R postgres --verbose standby clone pgmaster
Run Code Online (Sandbox Code Playgroud)
在 pgslave 上。
然后我做了一个
/etc/init.d/postgresql start
Run Code Online (Sandbox Code Playgroud)
在它上面,脚本(似乎)成功完成。
但是,执行 psql 会引发错误:
psql: FATAL: 数据库系统正在启动
欢迎任何有关进一步进行的帮助。