postgresql - PostgreSQL复制-从从属读取

标签 postgresql delay replication master slave

我想知道是否有任何复制模式允许从从主服务器和从服务器上读取数据,并且是否保证在任何时间点主服务器与从服务器完全同步,例如,在主服务器上提交事务和将数据传送到从服务器之间没有任何延迟,这样从slave读取时就不会丢失数据。

最佳答案

这实际上是一个棘手的问题,因为CAP theorem表示您不能有一致性(您所要求的)以及分区容忍度(如果网络出现故障,系统将保持正常)和可用性(整个系统仍然可用)。
必须通过在synchronous_standby_names中设置postgresql.conf并将synchronous_commit设置为remote_apply来启用同步复制,因此只有当事务的效果在待机状态下可见时,才会提交事务。
如果强制所有这些节点保持同步,则当一个节点发生故障时,整个系统将变得不可用。唯一的解决方法是拥有比需要一致性的节点更多的节点,但随后必须接受其中一些节点在给定时刻可能不一致。
而且,节点之间的网络延迟会直接影响提交速率,所以把节点紧密地放在一起,使它们之间有一个良好的网络。
流式复制主要是作为一种工具来实现高可用性,而不是负载平衡。

关于postgresql - PostgreSQL复制-从从属读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49573443/

相关文章:

database-design - 在 Cassandra 中拥有多个键空间是一种好习惯吗?

sql - View 和索引对性能的影响

node.js - 关系中的 TypeORM OneToMany 过滤器不影响结果

python - 将日期和时间戳格式的数据插入 PostgreSQL

actionscript-3 - 向事件 ActionScript 3 添加定时延迟?

javascript - Jquery .delay().fadeOut 取消/清除队列..可能吗?如何?

MySQL 复制监视器 - Seconds_Behind_Master

PostgreSQL Slony 复制 - 计划同步

postgresql - 绿梅 : Getting filenames processed via an external table

java - 不使用线程的java applet程序中的延迟