首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL主从式复制的可靠性

MySQL主从式复制的可靠性
EN

Stack Overflow用户
提问于 2014-07-18 15:10:12
回答 1查看 2.5K关注 0票数 2

我有一个应用程序,它需要大约30个表的主目录,这些表需要复制到应用程序的许多(100+)从副本中。从站可能在他们自己的DB实例中,或者在单个DB实例中可能有多个从站。对主目录的任何更改都需要在合理的时间内--大约5分钟内复制到奴隶手中。我们的基础设施都是AWS EC2,我们使用MySQL。主人和奴隶都将居住在一个AWS区域内。

我曾计划使用主从复制,但我发现MySQL复制有时是不可靠的,我不确定这是由于MySQL本身的特定实现或故障固有的失败所致。我们需要一个高度自动化和可靠的系统,而且我们可能需要开发监视脚本,允许一个从属程序持续监视其相对于主目录的目录。

有观察结果吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-18 16:10:13

当我在婚礼前上舞蹈课的时候,教练说:“你不必把每一步都做得很完美,你只需要在失足的时候学会优雅地恢复。如果你能迅速做到这一点,脸上带着微笑,没人会注意到。”

如果您有100+副本,则希望您将频繁地重新初始化副本,可能每天至少有一到两个副本。这很正常。

所有的软件都有错误。坦率地说,期待任何不同的事情都是天真的。不要指望软件完美无缺,无限期地无限期地运行,因为你会失望的。你不应该寻求一个完美的解决方案,你应该像一个舞者一样思考,并优雅地恢复。

MySQL复制相当稳定,与其他解决方案不相上下。但是可以发生各种各样的故障,而不是MySQL的错误。

  • 由于网络故障,Binlog可以在传输过程中开发损坏的数据包。MySQL 5.6引入了binlog校验和来检测这一点。
  • 主实例可能会崩溃,并且无法将事件写入binlog。sync_binlog可以帮助确保所有事务都在提交时写入到binlog (尽管有事务开销)。
  • 由于不确定的SQL语句、数据包损坏或磁盘上的日志损坏,或者某些用户可以直接更改副本上的数据,副本数据可能会不同步。Percona的pt表-校验和可以检测到这一点,而pt表同步可以纠正错误。使用binlog_format=ROW可以减少发生非确定性变化的可能性。设置副本read-only会有所帮助,而且不允许用户拥有超级权限。
  • 资源可能耗尽。例如,您可以填充主或副本上的磁盘。
  • 如果副本不能跟上主服务器上的变化,它们可能会落后。确保您的副本实例没有低功耗。使用binlog_format=ROW。对单个MySQL母版进行较少的更改。MySQL 5.6引入了多线程副本,但到目前为止,我已经看到了一些情况,这仍然有点错误,所以要仔细测试。
  • 副本可以离线很长一段时间,当它们重新联机时,主副本的一些二进制日志已经过期,因此副本不能从中断的地方重播连续的事件流。在这种情况下,您应该破坏副本并重新初始化它。
  • Bug发生在任何软件项目中,MySQL的复制也有它们的份额。您应该继续阅读MySQL的发行说明,并准备进行升级以利用bug修复。

在连续操作中管理大量的数据库服务器需要大量的全职工作,不管您使用的是哪个品牌的数据库。但是数据已经成为大多数企业的命脉,因此有必要管理这些资源。MySQL并不比任何其他品牌的数据库更好,也不差,如果有人告诉你一些不同的东西,他们就会卖东西。

P.S.:我想知道为什么您认为您需要在一个AWS区域中使用100+副本,因为对于任何高可用性或扩展目标,这可能会造成一个数量级的过度。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24828330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档