我是 Linux 新手,负责用 PostgreSQL 设置冗余 Linux DB 服务器。最好故障转移是自动的,但是目前手动过程也可以。
到目前为止,我所做的是按照 2ndQuadrant 上的步骤在 Ubuntu 11.10 上使用 PostgreSQL 9.1 和 repmgr1.1.0 设置两个相同的 DB 服务器。
唯一的问题是它只用于复制,但运行良好,谢谢 2ndQuadrant。现在我想通过关闭主数据库并将热备用数据库提升为主数据库来测试故障转移,但这失败了,sh: pg_ctl: not found
然后 postgreSQL 服务无法启动。
我的 postgreSQL 设置是通过 apt-get 默认安装的,并且设置为 master-hot_standby。请有人帮助我逐步在 2 个服务器之间设置 postgresql 的简单复制,并实现 HA 故障转移。
答案1
现在回答这个问题有点晚了。不过,我上周遇到了这个问题,但在“替换管理器“。
控制寄存器位于 Postgres 安装的 bin 目录中。bin 目录不在小路环境变量。您也无法设置环境变量,这使得这个问题变得很棘手。
您应该指定pg_bindir变量代表配置文件文件可解决此问题。通过更新 conf 文件中的路径添加以下行。
pg_bindir=/路径/到/postgres/bin
答案2
刚刚注意到这个未解答的问题..但通常你想以 postgres 用户身份运行 pg_ctl
在里面
/usr/lib/postgresql/9.2/bin/pg_ctl
如果您运行 9.2,那么您的版本可能会有所不同。