- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序需要大约 30 个表的主目录,这些表需要复制到应用程序的许多(100 多个)从属副本。从站可能在他们自己的数据库实例中,或者在单个数据库实例中可能有多个从站。对主目录的任何更改都需要在合理的时间内(大约 5 分钟)复制到从属目录。我们的基础设施全部是 AWS EC2,我们使用 MySQL。主节点和从节点都将驻留在一个 AWS 区域内。
我曾计划使用主从复制,但我看到有关 MySQL 复制有时不可靠的报告,我不确定这是由于特定实现中固有的故障还是 MySQL 本身的故障。我们需要一个高度自动化和可靠的系统,可能我们必须开发监控脚本,让从服务器持续监控其相对于主服务器的目录。
有什么意见吗?
最佳答案
当我在婚礼前上舞蹈课时,教练说:“你不必每一步都做得完美,你只需要学会在出现失误时优雅地恢复。如果你能快速做到这一点,并且有一个微笑在你的脸上,没有人会注意到。”
如果您有 100 多个副本,预计您会经常重新初始化副本,可能每天至少一到两个。这是正常的。
所有软件都有错误。坦率地说,期待任何不同是天真的。不要指望软件完美无缺并无限期地 24/7 无错误地继续运行,因为您会失望的。你不应该寻求完美的解决方案,你应该像舞者一样思考,优雅地恢复。
MySQL 复制相当稳定,不亚于其他解决方案。但是可能会发生各种故障,而这并不是 MySQL 的错。
由于网络故障,二进制日志可能会在传输过程中产生损坏的数据包。 MySQL 5.6 引入了二进制日志校验和来检测这一点。
主实例可能会崩溃并且无法将事件写入二进制日志。 sync_binlog
有助于确保所有事务都在提交时写入二进制日志(尽管有事务开销)。
由于不确定的 SQL 语句、数据包损坏或磁盘上的日志损坏,副本数据可能会不同步,或者某些用户可以直接在副本上更改数据。 Percona 的 pt-table-checksum可以检测到这一点,并且pt-table-sync可以纠正错误。使用 binlog_format=ROW
可以减少不确定性更改的可能性。将副本设置为只读
会有所帮助,并且不要让用户拥有 SUPER 权限。
资源可能会用完。例如,您可以填满主服务器或副本服务器上的磁盘。
如果副本跟不上主副本的变化,它们可能会落后。确保您的副本实例没有动力不足。使用 binlog_format=ROW
。对单个 MySQL master 写入更少的更改。 MySQL 5.6 引入了多线程副本,但到目前为止,我看到一些情况仍然存在一些问题,因此请仔细测试。
副本可以离线很长时间,当它们重新联机时,主服务器的一些二进制日志已经过期,因此副本无法从它停止的地方重播连续的事件流。在这种情况下,您应该丢弃副本并重新初始化它。
错误在任何软件项目中都会发生,而 MySQL 的复制也有其份额。您应该继续阅读 MySQL 的发行说明,并准备好升级以利用错误修复。
无论您使用什么品牌的数据库,管理大量连续运行的数据库服务器都需要大量的全职工作。但数据已经成为大多数企业的生命线,因此有必要对这种资源进行管理。 MySQL 并不比任何其他品牌的数据库好,也不差,如果有人告诉您一些不同之处,那么他们就是在卖东西。
P.S.:我想听听您为什么认为在单个 AWS 区域中需要 100 多个副本,因为对于高可用性或扩展的任何目标来说,这可能都过大了一个数量级。
关于mysql - MySQL主从复制的可靠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24828330/
我们打算做一主两从的配置。我们的目标如下。我们有大量的传入记录,因此我们计划执行以下操作: Master - has only past 7 days records Slave 1 - as sam
我已经成功地设置了一个主从环境,它绝对可以正常工作。 我遇到的唯一问题是从表中选择计数,它们不相同但是在 5 分钟后从主选择,在从属上创建 50 行,也创建 50 行(这就是为什么我说我'我确定它工作
我有一个与 MariaDb 实例相关的业务需求,该实例应该在具有故障转移功能的主从配置中工作。 查看我看到的文档,可以配置多集群主机 (galera) 或简单的主从副本。 配置主从+故障转移有什么建议
我想将 qml 与主从界面一起使用,但我不知道如何以正确的方式将当前项目传递到详细信息 View 。主视图中的 ListView 使用 C++ 模型(QSQLTableModel 的附加组件,它工作正
我有一个主从 fragment 布局,看起来像这样: 当从 ListView 中选择一个数字时,详细 View 中的值会发生变化(即单选按钮文本发生变化)。我有以下问题:当我在 ListView 中单
当主服务器已经有大量数据时,有没有办法复制mysql。我尝试了常规方法,但很难获取MASTER_LOG_POS值。从服务器如何能够复制主服务器上先前存在的数据。 最佳答案 通常,您会从现有数据库的完整
如果主数据库出现故障,我想切换从数据库。我找到了 Master/Slave开关,但它用于读写(看起来很合乎逻辑,但不是这种情况)。你能在 zend 中给出“db failure”策略吗? 最佳答案 看
场景: 我们的架构基于 memcached,随着用户群数量的增加,我们需要将缓存复制到多个服务器。 我们可以使用repcached实用程序轻松地在两台服务器之间进行复制。 我们希望以这样的方式负载平衡
单机配置启动 Redis安装 下载地址: http://redis.io/download 安装步骤: 1: 安装gcc编译器:yum install gcc 2:
我有一些关于主从数据复制的问题,是否有机会重新同步它们,以便在主从数据中拥有相同的数据,而无需尝试在从属数据上手动添加与主数据相同的数据? 最佳答案 一种选择是对主服务器进行备份并使用它来完全替换副本
我有一个Master和一个Slave 操作系统:MySQL5.6 & RHEL 7.0 复制状态:运行良好 一切工作正常且正确我想检查数据是否在服务器之间正确复制(主到从),并在 mysqlrplsy
我是 pgbouncer 1.7 的新手,我想用主从配置来配置它。 我已经使用 repmgr 配置了 postgres 9.3 流复制,我想使用 pgbouncer 进行负载平衡和连接池,以便在主服务
我想将一个从站连接到 Master-Jenkins,但是在尝试连接时出现以下错误: [05/02/18 15:26:59] [SSH] Opening SSH connection to Key e
我在 Windows 计算机上运行 SonarQube Server 和 Jenkins 实例。 我已经创建了 Jenkins 作业来使用 SonarQube 生成代码覆盖率报告。该作业在 Linux
我有一个这个模型(它不是实际代码,为了清楚起见,我省略了 INotifyPropertyChanged 实现)。 public class Project { public Ob
我正在使用分开的主细节剑道 ui 网格。主网格位于标签条 1 (tabstrip.select(0)) 内。添加/编辑字段(用于主网格)位于首页的标签条 2 (tabstrip.select(1))
我有 5 个选项卡栏项目。第五项是 UISplitViewController。在肖像模式下,在应用程序启动时,我可以看到详细信息屏幕,而不是主屏幕。我期待着大师的到来。在横向模式下,主从细节工作正常
作为 swift 的新手,我正在尝试使用 Master View Controller,在其中我使用 JSON 阅读博客并将其存储在核心数据中。一切都很好,只是我不明白如何在向右滑动和删除时从核心数据
我正在尝试使用主从复制配置 MySQL 数据库。在我意识到必须使用此复制来设置环境之前,我已经有 2 台独立的服务器运行它们自己的 MySQL 数据库。这些服务器中的每一个的配置都完全相同。 MySQ
我有一个正在运行的 Django 应用程序。我使用的数据库后端是 PostGreSql。一切对我来说都很好。 现在我想为我的数据库创建一个主从复制,这样: 无论 master 发生什么变化,都会在 s
我是一名优秀的程序员,十分优秀!