有许多问题涉及故障转移问题,我有点不知所措,这就是为什么我在这里询问我的具体情况。
我的设置如下:
我有三台运行 ubuntu linux 16.04 的服务器。这三个服务器都有自己的固定 IP。
8 月份,其中一台服务器将托管一个带有大型后端 mysql 数据库的网站。用户(大约 500-1000 人)将在白天(例如上午 8 点至晚上 8 点)持续在数据库中记录条目。管理员将查询数据库以获取各种统计数据。
网站和数据库需要始终保持运行,因此我想使用第二台服务器来镜像第一台服务器上的所有内容,并在第一台服务器出现故障时接管(故障转移)。如果需要,我可以使用第三台服务器来监控两台服务器的响应。
我真的不知道从哪里开始。我的主要问题是
如何使大型 mysql 数据库在两台独立的机器上保持同步?数据库会很大(可能 5-10Gb),因此需要时间从 .sql 文件输出和重建数据库。如果发生灾难,我可以接受 10 分钟的日志记录和正常运行时间,但不能接受花费数小时从 sql 文件在另一台服务器上重建数据库。
如果第一台服务器宕机,如何让第二台服务器接管?我是否应该使用第三台服务器监控两台服务器的活动,并在主服务器宕机时切换 IP?如果是这样,请提供一些详细的步骤。我看到这个问题用“心跳”和“虚拟 IP”这样的术语来回答,这对我来说有点太抽象了。我需要尽可能多的细节,如果这超出了我的专业知识,我需要找出原因,以便及时通知我的老板。
感谢帮助
答案1
Mysql Replication 很好地解决了这些问题,即使对于地理分布式数据库也是如此。
在您的场景中,您可能还需要考虑仅写入主数据库并仅从复制从属数据库读取,这可以提高性能