MySQL Server 1 作为主服务器运行。
MySQL Server 2 作为 Slave 运行。
两个数据库都在线时,它们处于“完美同步”状态。如果Slave下线,Master还在线没有问题;一旦 Slave 再次在线,它们将恢复同步。
除了服务器配置之外,如果主服务器脱机,我会重定向从数据库的连接(使用 JSP 代码)(我当然用 /etc/init.d/mysqld stop 进行了测试)。
当Master重新上线时,有没有自动同步Master和Slave更新的方法?
我们有一个位于不同数据中心的vanilla master 和slave MySQL 设置,以及与master 位于同一数据中心的另一个slave。
数据中心之间的带宽相当高(在我们所做的网络基准测试中,我们可以达到 15MB/秒),但存在延迟,约为 28 毫秒。无论如何它都不高,但它比同一数据中心的亚秒延迟要高得多。
有时,我们会在删除从站时遇到严重的滞后(2000 秒甚至更多),而本地从站保持最新。在查看滞后的远程slave时,SQL线程通常会花时间等待IO线程更新中继日志。主人同时显示“等待网络”或类似的东西。
所以这意味着它是网络,但在发生这种情况时我们仍然有免费带宽。
我的问题是:数据中心之间的延迟会影响复制的性能吗?从属 io 线程是否只是流式传输事件直到主节点停止发送它们,还是在事件之间以某种方式池主节点?
我们正在实施在 MySQL 上运行的新 CMS (Drupal 6.x)。我们有两个数据中心——主要的和次要的——它们之间的延迟是已知的。我们不确定我们将运行哪个版本的 MySQL……社区或企业,但这是一个待定的时间。看起来我们将运行 InnoDB 引擎,操作系统将是 RedHat EL 5.5 主服务器将处于活动状态,而辅助服务器将处于被动或热备用状态。
我想在 MySQL 中跨两个数据中心实现复制、高可用性和自动故障转移。
在故障转移到辅助服务器后,当我们故障恢复到主服务器时,我们希望将数据从辅助数据库快速完整地同步到主数据库,以便我们可以继续提供来自主服务器的内容。
我很想知道可以使用哪些技术/工具/最佳实践来解决/解决这些问题。此外,任何陷阱或啊哈时刻也将不胜感激。我已经阅读了 MySQL 复制、集群和一些 3rd 方工具,如 Tungsten 和 Dolphinics,但我不确定什么是最好的行动方案。
感谢您的时间!
知识管理
我不是一个“合格的”DBA,但是是的,我负责我们在社交应用程序中使用的我自己的数据库。
出于显而易见的原因,我最近在我的数据库上实施了主/从复制。
我想知道的是 MySQL 复制是否会破坏我的数据库的性能,因为对于在我的主数据库上写入的每个用户都会在从数据库上创建一个额外的写入(我可能在这里错了)。
我的奴隶和主人之间没有滞后。因此,复制几乎是瞬间完成的。
我有一个带有 2 个 Web 服务器和 2 个数据库服务器的 Web 应用程序。DB 是为多主复制设置的。(这是主要环境)
我也在不同的位置上有完全相同的设置作为备用,以防主环境出现故障。(这是备份环境)
我需要的是备份环境与主站点的数据库同步。但是,两种环境中的所有 DB 都已配置复制。
我怎样才能实现我的目标?
谢谢