- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 台 PostgreSQL 服务器,我已经在它们之间设置了流复制。我已经构建了一个 shell 脚本,它每分钟都会 ping 到主服务器,并在主服务器不响应时将从服务器提升为主服务器。我正在使用 rh-postgresql95,第 3 方工具不适用于此版本。
我的 JDBC 连接字符串有逗号分隔的节点,targetServerType=master 如下所示
jdbc:postgresql://node1,node2/accounting?targetServerType=master.
我只想知道,如果slave升为master,old master也莫名其妙出现,如何避免脑裂?
或
有没有办法让老主人永远不会自动出现?
编辑
在我的 JDBC 连接字符串中,node1 是主节点,node2 是从节点。
我停止了 master 上的 postgres 服务,并将 slave 提升为 New Master。在这种情况下,服务指向新的主人。
然后我在old master上重启了postgres服务,服务开始指向old master(node1是old master的ip,它在JDBC连接字符串中排在第一位。)
所以,我没有得到脑裂问题,但这种情况会导致数据不一致。
最佳答案
作为一个想法,您的 ping 脚本可以检查两个服务器是否认为它们是主服务器:
select pg_is_in_recovery();
不在恢复中的服务器是主服务器。然后你可以检查最后一个 received WAL's number :
select pg_last_wal_receive_lsn();
具有最高 LSN 的服务器是最后升级的服务器。然后您可以关闭另一台服务器。
如果您对第三方选项改变主意,请查看 PostgresSQL wiki .
关于postgresql - 在没有第 3 方工具的情况下避免 PostgreSQL 中的脑裂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50345754/
假设我们有两台ElasticSearch服务器A和B,都可以成为master。还假设 A 是 master。还假设 minimum_master_nodes 属性也设置为 1。 如果服务器 A(主服务
本文重点分享Zookeeper脑裂问题的处理办法。ZooKeeper是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核,用户可以在此之上构建更多复杂的分布式协调功能。 脑裂通常会出
我是一名优秀的程序员,十分优秀!