我想把我的注意力集中在Postgres的异步复制上。我阅读文档的方式是,如果主在提交数据之后就会下降,但是在将数据发送给奴隶之前,奴隶将永远不会获得该数据(即使在主服务器重新启动之后)。
据我所知,这与MySQL的异步复制不同,在异步复制中,主服务器恢复同步它的二进制日志(在不丢失任何数据的情况下)。
对我来说有点疯狂,所以我想确定我读的是正确的文档。
我要说的是,我并不是说数据丢失会导致选举其中一个奴隶为新主人。简单地说,数据丢失是因为主服务器在WAL出厂之前就下降了,并且一旦主服务器恢复运行,就不会发货了。
发布于 2012-10-27 16:55:31
当主人回来时,任何剩余的WAL必须同步到奴隶,否则奴隶将不能作为一个副本继续下去。到了那个时候,奴隶将重放沃尔,并赶上主人。只要主程序恢复,就不会丢失任何数据。如果失去主程序,您只会丢失尚未复制的数据。
这是由时间线保证的,奴隶只是拒绝重播WAL档案,除非是在正确和不间断的时间顺序。只要你正确地监控你的从节点,你就会看到它们停止前进,并且知道事情是坏的。但是,如果WAL归档设置正确,则不应该发生这种情况。
考虑使用异步流复制和WAL传送,这有助于减少潜在的丢失窗口,如果您确实失去了主程序。
https://dba.stackexchange.com/questions/27734
复制相似问题