我很快就需要设置一个预算有限的数据库服务器。我们计划在 Ubuntu 上使用 Postgres(很有可能),并且我们想要一个备份服务器。对于复制,我想我会使用 Postgres 的流复制。它可以满足我的所有需求,而且设置简单。
但是,如果主服务器出现故障,我们需要备份服务器怎么办?有没有办法在不使用第三台计算机的情况下将数据路由到备份服务器?
假设我的主计算机有域名PG-MAIN
,而我的备份计算机有域名PG-BACKUP
。如果我有第三台计算机,我可以(例如)检查是否PG-MAIN
启动,如果它关闭,则重命名PG-BACKUP
为PG-MAIN
。然后,发送到的任何查询PG-MAIN
仍将成功。也许这将是一个糟糕的解决方案。我实际上不知道。(虽然此服务器故障答案说以这种方式使用 DNS 不是一个好主意。)
但是,有没有一种方法可以让备份计算机在主计算机发生故障时悄悄地代替主计算机,而无需使用第三台计算机?我想不出任何方法。我所说的“故障”是指数据库守护程序停止响应或钢琴掉落在计算机上。
如果事实证明这绝对不可能,那么处理回退的成本效益高的方法是什么?客户端应用程序将是定制的。系统的回退部分逻辑是否应该由客户端应用程序处理?(最后一部分听起来像非常馊主意。)