对于具有故障转移功能的数据库复制,推荐的选择是什么?我知道这是一个很宽泛的问题,但我很好奇在实际设置中一般的经验是什么。
据我所知,galera 不是一个故障转移设置,因为当服务器开始出现故障并且集群变得太小时,它就会拒绝处理查询。
采用主/从模式是否更好?
目标是:数据库始终在至少一台服务器上可用。从数据角度来看,这是一个相对较小的设置(最多 2 GB 数据,低流量)
答案1
我觉得您对 Galera 是什么和不是什么有点困惑。
Galera 是一个多主复制系统,允许 2 个(最好是 3 个)或更多节点在它们之间复制数据,并提供一定程度的高可用性或负载平衡。由于存在裂脑情况,您不应在少于 3 个节点的情况下使用它。
Galera 可以在一个节点存活的情况下运行,并且不会因为节点数量太多而出现故障 - 但是如果所有节点都发生故障,则需要手动引导整个集群,因为它没有自动化的方式来执行此操作(除了 Percona,但那是完全不同的事情)。
我认为你应该问自己这个问题;我将如何实现故障转移系统?你需要让你的应用程序/服务使用代理服务器维护健康服务器列表(例如 HaProxy 可以做到这一点),或者让你的应用程序/服务在内部通过查看哪些服务器回复并跳转到下一个 MySQL/MariaDB 节点来执行此操作。
总而言之,您的问题非常广泛,很难给出确切的答案,因为这完全取决于您可以使用的服务和基础设施类型。