5.3 冗余和停止复制
谈到同步复制,有一个现象一定不能被遗漏。想象一下,我们有一个同步复制的双节点集群。如果slave故障会发生什么?答案是master不能容易地区分慢slave和故障slave,因此它将开始等待slave回来。
乍一看,这看起来像废话,但是如果您再深入地想想。您会明白,它实际上是唯一正确的事情。如果有人使用同步复制,系统中的数据一定都是有价值的,所以它决不能有风险。拒绝数据和向终端用户反馈比使数据存储在风险和默默地忽视高耐久性需求要好。
如果您决定使用同步复制,您必须考虑在您的集群中至少使用三个节点。否则将会有很大的风险,您不能失去没有遇到显著停机时间或丢失数据的风险的单个节点。
5.4 总结
在本章中,我们提出了同步复制的基本概念,并且已经展示了数据是如何被同步复制的。我们还介绍了如何通过修改PostgreSQL的运行参数来改变耐久性要求。PostgreSQL给了用户如何复制事务的选择,和对一个特定的事务复制需要哪个耐久性的级别。
在下一章中,我们将深入监控并看看您怎么查看您的复制的设置是否像预期的那样工作。我们将介绍一些技巧,使他不难看出是否您的集群像预期的那样工作。