【发布时间】:2012-09-27 17:10:11
【问题描述】:
我注意到 Postgres 现在具有内置复制功能,包括同步复制、流复制和其他一些变体。它甚至提供了在应用程序级别控制特定操作的同步的能力(例如,将同步用于重要的事情,如汇款,但可能不用于不太重要的事情,如用户 cmets 等)
我正在使用 Django 1.5(即 dev)开发软件,可能需要同步复制(将进行与商务相关的交易)。
您是否认为内置工具在大多数情况下最适合这项工作,您对内置复制的一种变体与另一种变体、易用性相关、质量等有什么想法?
最后一件事; Slony 和 PGPool II 似乎非常流行(尤其是 Slony)用于复制。是否有 A)它们比内置复制更受欢迎的特定技术原因或 B)仅仅是因为很多人正在使用没有内置复制的版本,或者 C)我是否陷入困境而且PG内置复制已经很流行了?
更新(更多细节)
我只有 2 台物理服务器,它们位于同一个机架中。我的目的是提供一个从机,如果一台机器出现灾难性问题(或者甚至像双电源故障等简单的事情),它可以自动变成主机。我不介意我的客户在自动故障转移期间是否会遇到停机,只要停机时间是几分钟左右,而不是一小时左右。
我希望实现零数据丢失,并愿意为此在故障转移过程中牺牲更多时间。有没有办法在不进行同步复制的情况下进行权衡(例如,流式传输日志而无需回写确认等)?
您会推荐什么策略或复制变体?
【问题讨论】:
-
您说:“我希望实现零数据丢失,并愿意为此在故障转移过程中牺牲更多时间。”一个与另一个无关。如果您想要零数据丢失,您将需要同步复制。根据定义,异步复制不能保证不丢失数据。
标签: database django postgresql database-replication