随着连接到源的副本数量增加,负载虽然很小,但也会增加,因为每个副本都使用与源的客户端连接。此外,由于每个副本都必须接收源二进制日志的完整副本,因此源上的网络负载也可能增加并造成瓶颈。
如果您使用连接到一个源的大量副本,并且该源也忙于处理请求(例如,作为横向扩展解决方案的一部分),那么您可能希望提高复制过程的性能。
提高复制过程性能的一种方法是创建更深层次的复制结构,使源只能复制到一个副本,并让其余副本连接到该主副本以满足其各自的复制要求。图 17.3,“使用额外的复制源来提高性能”中显示了这种结构的示例 。
图 17.3 使用额外的复制源来提高性能
为此,您必须按如下方式配置 MySQL 实例:
- 源 1 是将所有更改和更新写入数据库的主要源。两个源服务器上都启用了二进制日志记录,这是默认设置。
- 源 2 是服务器源 1 的副本,它为复制结构中的其余副本提供复制功能。源 2 是唯一允许连接到源 1 的计算机。源 2 已
--log-slave-updates
启用该选项(这是默认设置)。使用此选项,来自 Source 1 的复制指令也被写入 Source 2 的二进制日志,以便它们可以被复制到真正的副本。 - Replica 1、Replica 2 和 Replica 3 充当 Source 2 的副本,并复制 Source 2 的信息,这实际上包括 Source 1 上记录的升级。
上述解决方案减少了主源上的客户端负载和网络接口负载,当用作直接数据库解决方案时,应该会提高主源的整体性能。
如果您的副本无法跟上源上的复制过程,则有许多可用选项:
- 如果可能,将中继日志和数据文件放在不同的物理驱动器上。为此,请设置
relay_log
系统变量以指定中继日志的位置。 - 如果读取二进制日志文件和中继日志文件的大量磁盘 I/O 活动是一个问题,请考虑增加
rpl_read_size
系统变量的值。此系统变量控制从日志文件读取的最小数据量,当操作系统当前未缓存文件数据时,增加它可能会减少文件读取和 I/O 停顿。请注意,为从二进制日志和中继日志文件读取的每个线程分配一个此值大小的缓冲区,包括源上的转储线程和副本上的协调器线程。因此,设置较大的值可能会对服务器的内存消耗产生影响。 - 如果副本明显慢于源,您可能希望将不同数据库复制到不同副本的责任分担。请参阅 第 17.4.6 节,“将不同的数据库复制到不同的副本”。
- 如果您的源使用事务并且您不关心副本上的事务支持,请在副本上使用
MyISAM
或其他非事务引擎。请参阅 第 17.4.4 节,“将复制与不同的源和副本存储引擎一起使用”。 - 如果您的副本不充当源,并且您有一个潜在的解决方案来确保在发生故障时可以启动源,那么您可以禁用系统变量
log_replica_updates
(从 MySQL 8.0.26 开始)或log_slave_updates
(在 MySQL 之前) 8.0.26)在副本上。这可以防止 “哑”副本也将它们已执行的事件记录到自己的二进制日志中。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2897次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
844次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
489次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
426次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
371次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
279次阅读
2025-04-30 17:37:37
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
275次阅读
2025-04-15 15:27:53
SQL优化 - explain查看SQL执行计划(下)
金同学
262次阅读
2025-05-06 14:40:00
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
243次阅读
2025-04-30 12:17:54
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
226次阅读
2025-04-18 20:21:32
TA的专栏
热门文章
我的故障分析及处理思路分享(李真旭)
2020-10-22 11197浏览
公共子表达式消除(Common Subexpression elimination,CSE)
2020-08-26 6224浏览
Oracle数据库的跟踪和分析方法
2020-10-02 5085浏览
2.5.9使用systemd管理MySQL服务器
2020-10-20 4563浏览
初探华为云GaussDB (for MySQL)
2020-12-11 3889浏览
最新文章
28.4.4 INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS 表
2024-09-29 110浏览
28.4.3 INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU 表
2024-09-29 71浏览
28.4.2 INFORMATION_SCHEMA INNODB_BUFFER_PAGE 表
2024-09-29 69浏览
28.4.1 INFORMATION_SCHEMA InnoDB 表参考
2024-09-29 74浏览
28.3.50 INFORMATION_SCHEMA VIEW_TABLE_USAGE 表
2024-09-29 72浏览