热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

mysql环形复制_MySQL复制(五:拓扑结构)|剑花烟雨江南

可以在任意主库和备库之间建立复制,只有一个限制:一个备库只能有一个主库。前面已经介绍了如何为一个主库设置一个备库,接下来介绍其他比较普遍的

可以在任意主库和备库之间建立复制,只有一个限制: 一个备库只能有一个主库。

前面已经介绍了如何为一个主库设置一个备库,接下来介绍其他比较普遍的拓扑结构以及优缺点。记住以下原则:

1)一个MySQL 备库实例只能有一个主库。

2)每个备库必须有一个唯一的服务器ID。

3)一个主库可以有多个备库。

4)如果打开了 log_slave_updates 选项,一个备库可以把其主库上的数据变化传播到其他备库。

一主库对多备库

事实上一主多备的结构和配置基本上差不多,因为备库之间根本没有交互。

0897a9b9d6e5e02d5b71eb00d3e4039f.png

尽管这是非常简答的拓扑结构,但它可以满足多种需求。下面是它的一些用途:

1)为不同的角色使用不用的备库。

2)把一台备库当做待用的主库,除了复制没有其他数据传输。

3)把一台备库放到远程数据中心,用做灾难恢复。

4)延迟一个或多个备库,以备灾难恢复。

5)使用其中一个备库,用做备份、培训、开发或者测试使用服务器。

主动 — 主动模式下的主 — 主复制

主 - 主复制(也叫双主复制或双向复制)包含两台服务器,每一个都被配置成对方的主库和备库。

e37aa321c455a2bb0b3fd77fa7b29758.png

这种配置最大的问题就是如何解决冲突,两个可写的互主服务器导致的问题非常多。这通常发生在两台服务器同时修改一行记录,或同时在两台服务器上包含一个 AUTO_INCREMENT 列的表里插入数据。

MySQL 5.0 增加了一些特性,使得这种配置稍微安全了点。总地来说,允许向两个服务器上写入所带来的麻烦远远大于其带来的好处。

主动 — 被动模式下的 主 — 主复制

这是前面描述的主 - 主结构的变体,它能够避免上面的问题。这也是构建容错性和高可用性系统的非常强大的方式,主要区别在于另一台服务器是只读的被动服务器。

89f98272f12169d17f5be79467317721.png

这种方式使得反复切换主动和被动服务器非常方便,因为服务器的配置是对称的。这使得故障转移和故障恢复很容易。

对两台服务器上执行如下设置后,会使其拥有对称的设置:

1.确保两台服务器上有相同的数据

2.启用二进制日志,选择唯一的服务器ID,并创建复制账号。

3.启用备库更新的日志记录,这是故障转移和故障恢复的关键。

4.把被动服务器配置成只读,防止可能与主动服务器上的更新产生冲突,这一点是可选的

5.启动每个服务器上的 MySQL 实例

6.将每个主库设置成对方的备库,使用新创建的二进制日志开始工作。

拥有备库的主 — 主结构

另外一种相关的配置是为每一个主库增加一个备库。

fafe9aa7be1594cffe2c79c29a978304.png

这种配置的优点是增加了冗余,对于不同地理位置的复制拓扑,能够消除站点单点失效的问题。

环形复制

双主结构实际上是环形结构的一种特例。环形结构可以有三个或者更多的主库。每个服务器都是在它之前的服务器的备库,是在它之后的服务器的主库。这种结构也被称为环形复制。

因为唯一可以根据服务器ID 将其过滤的服务器是创建这个事件的服务器,总地来说,环形结构非常脆弱,应该尽量避免。

65de57ba0db88420557cd6c454febf69.png

可以通过为每个节点增加备库的方式来减少环形复制的风险。



推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文深入探讨了如何通过调整InnoDB的关键配置参数来优化MySQL的随机IO性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 解决MongoDB Compass远程连接问题
    本文记录了在使用阿里云服务器部署MongoDB后,通过MongoDB Compass进行远程连接时遇到的问题及解决方案。详细介绍了从防火墙配置到安全组设置的各个步骤,帮助读者顺利解决问题。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文详细介绍了 MySQL 的查询处理流程,包括从客户端连接到服务器、查询缓存检查、语句解析、查询优化及执行等步骤。同时,深入探讨了 MySQL 中的乐观锁机制及其在并发控制中的应用。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
author-avatar
赵娜supergirl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有