我对postgres非常陌生并且是新手我遇到了困难并且需要一些帮助,请原谅,如果你发现它很愚蠢。
我正在做一个pgpool HA并且在postgres级别我在postgresql-9.5
的3个节点之间进行流复制 - 1个主节点和2个从节点
我试图配置自动故障转移,但当我切换回原始主服务器,并重新启动postgres服务时,我收到以下错误:
我尝试删除slave中的pg_xlog文件,并将master pg_xlog
中的所有文件复制到slave中,然后执行rsync。
我也做了pg_rewind
,但它说:
目标服务器需要使用数据校验和或
wal_log_hints = on
(我已经在postgresql.conf中设置了wal_log_hints = on
)
我尝试过pg_basebackup
,但由于从站中的数据库服务器仍在启动,因此无法连接到服务器
有没有办法让主设备和从设备在同一时间线上?
答案 0 :(得分:0)
我认为你的pgpool配置有问题。您一直用于复制和主从控制的工具是什么?它是post master还是repmgr?
我尝试使用http://jensd.be/591/linux/setup-a-redundant-postgresql-database-with-repmgr-and-pgpool中的教程配置包含3个数据节点的pgpool,并且已正确完成。
此外,您可以在此处进行自动故障转移。
答案 1 :(得分:0)
(这些问题显然与this one重复,所以我也会重复这个问题。)
我不确定你到底是什么意思&#34;当我切换回原来的主人&#34;但是看起来你在PostgreSQL流媒体复制中做了最糟糕的事情< / strong> - 介绍第二个主人。
关于PostgreSQL复制,您应该了解的最重要的事情是,一旦执行了故障转移,您就不能简单地切换回原始主服务器&#34; - 现在群集中有一个新的主人,两个主人的存在会造成伤害。
将奴隶提升为主人后,您重新加入旧主人的唯一方法是:
如果您希望它再次成为主人,您将继续以下内容:
您不能简单地切换主服务器!只能通过故障转移(提升从属)
创建主服务器您还应该知道,无论何时执行故障转移(每当更改主服务器时),都需要重新配置所有从服务器(提升服务器除外)以定位新服务器。
我建议你阅读this tutorial - 它会帮助你。
答案 2 :(得分:0)
在我的情况下,它发生的原因是(实验性地),我更新了备用数据库表,当我模拟主 - 备用流复制时,我得到了相同的错误。 所以我再一次清理了整个备用数据库目录,并使用像
这样的cmd迁移master数据库“pg_basebackup -P -R -X stream -c fast -h 10.10.40.105 -U postgres -D standby /”