这是场景:
有两台机器运行 CentOS 6.2 - machine0 和 machine1
两者都安装了 PostgreSQL 9.1。
其中一个应该是活动的,作为主系统,并通过异步流复制另一台机器,备用系统应该将更改从主系统复制到数据库。
假设开始时machine0是master,machine1是standby。
如果 master(比如 machine0)失败(这里的失败意味着 postgresql 服务器崩溃),standby 应该从 master 接管并成为新的 master。
machine1,新的 master 处理所有数据库操作,当 machine0 中的 postgresql 服务器重新联机时,它应该成为备用服务器,从与 machine1 失去联系的点开始同步,并将所有更改复制到数据库并保持备用模式。
当机器 1 失败时,整个循环重复。
当备用服务器出现故障并重新上线时,它应该开始从主服务器读取数据并同步数据。
我很困惑我需要使用什么工具来设置它,因为我知道 PostgreSQL 默认不带有故障转移。
如果有人可以将我链接到描述如何做我正在尝试的主题/页面,我将非常感激。
我正在使用 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: 数据库系统正在启动
欢迎任何有关进一步进行的帮助。