热门标签 | 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

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



推荐阅读
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 大势至服务器文件备份系统是一款专为服务器数据保护设计的安全软件,能够实现自动化的全量备份和增量备份,支持多种备份目标,如服务器其他分区、外接硬盘、其他服务器或NAS存储空间,并提供灵活的备份频率设置,有效保障服务器文件的安全。 ... [详细]
  • 本文详细介绍了MySQL数据库服务器(mysqld)和客户端(mysql)的区别,并提供了多种启动和关闭MySQL服务器的方法。通过这些方法,您可以更好地管理和维护MySQL数据库。 ... [详细]
  • 深入理解Redis中的字典实现
    本文详细介绍了Redis中字典的实现机制,包括其底层数据结构、哈希表与哈希节点的关系、元素添加方法及rehash操作的具体流程。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • Kaldi训练过程中无错误提示但在特定点终止
    在使用Kaldi进行训练时,尽管没有出现错误提示,但程序在特定点自动终止。本文探讨可能的原因并提供解决方案。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 本文介绍了Spring 2.0引入的TaskExecutor接口及其多种实现,包括同步和异步执行任务的方式。文章详细解释了如何在Spring应用中配置和使用这些线程池实现,以提高应用的性能和可管理性。 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
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社区 版权所有