如何镜像数据库并实施故障转移解决方案

如何镜像数据库并实施故障转移解决方案

有许多问题涉及故障转移问题,我有点不知所措,这就是为什么我在这里询问我的具体情况。

我的设置如下:

  1. 我有三台运行 ubuntu linux 16.04 的服务器。这三个服务器都有自己的固定 IP。

  2. 8 月份,其中一台服务器将托管一个带有大型后端 mysql 数据库的网站。用户(大约 500-1000 人)将在白天(例如上午 8 点至晚上 8 点)持续在数据库中记录条目。管理员将查询数据库以获取各种统计数据。

  3. 网站和数据库需要始终保持运行,因此我想使用第二台服务器来镜像第一台服务器上的所有内容,并在第一台服务器出现故障时接管(故障转移)。如果需要,我可以使用第三台服务器来监控两台服务器的响应。

我真的不知道从哪里开始。我的主要问题是

  1. 如何使大型 mysql 数据库在两台独立的机器上保持同步?数据库会很大(可能 5-10Gb),因此需要时间从 .sql 文件输出和重建数据库。如果发生灾难,我可以接受 10 分钟的日志记录和正常运行时间,但不能接受花费数小时从 sql 文件在另一台服务器上重建数据库。

  2. 如果第一台服务器宕机,如何让第二台服务器接管?我是否应该使用第三台服务器监控两台服务器的活动,并在主服务器宕机时切换 IP?如果是这样,请提供一些详细的步骤。我看到这个问题用“心跳”和“虚拟 IP”这样的术语来回答,这对我来说有点太抽象了。我需要尽可能多的细节,如果这超出了我的专业知识,我需要找出原因,以便及时通知我的老板。

感谢帮助

答案1

Mysql Replication 很好地解决了这些问题,即使对于地理分布式数据库也是如此。

在您的场景中,您可能还需要考虑仅写入主数据库并仅从复制从属数据库读取,这可以提高性能

答案2

同意前面的答案,mysql 复制可能是一个可能的解决方案。

此外,您还可以在一些服务器之间创建共享存储,并将带有数据库的虚拟机放在其中,这样如果发生某些事情,它将在服务器之间迁移。对于这种情况,请使用类似HPE VSA或者星风。他们也有免费版本。

它将允许您为任何生产场景创建虚拟机,并确保所有数据在服务器之间复制。

相关内容