我有一个数据库(MySQL)。 什么是最好的“故障转移”策略?

MySQL是否带有内置的自动故障转移function? 或者,那里有负载均衡器,可以“检测”数据库是否活着…如果不是…将其发送到故障转移数据库?

我知道基本的MySQL,但不知道为一个主数据库devise故障转移的最佳方法。

单独的MySQL不提供故障转移机制。 这实际上是很难解决的普遍问题,所以最好是用具体的工具逐案解决。

因为你没有提到你正在使用哪个操作系统,所以我将举一些例子来说明如何使用Linux。 当您设置了常规复制时,您可能需要查看Linux HA项目中的工具来实现故障切换。 通过这些,您可以在主站发生故障时提升从站数据库。

另一种可能性是使用DRBD ,这将使复制发生在存储级别,所以MySQL实际上并不知道正在进行复制。 这种方法的问题与定期复制相似,你的主要和主人必须知道情况是什么。 为此,Linux HA工具将是最好的select。

MySQL也具有集群function,但它们至less需要三台服务器,对数据模型施加一些限制。 对于小型数据库来说,这并不值得。

最重要的是,你会想要使用某种连接池。 它将使客户端的故障转移变得透明,因为他们不必知道哪个数据库实际上正在执行工作。

MySQL可以与复制策略一起使用,但是我上次看到的支持不如其他数据库。 你需要看看MySQL复制来读取这个。