mysql 架构类问题之 MMM 架构「建议收藏」

mysql 架构类问题之 MMM 架构「建议收藏」MMM 和 MHA 架构 MMM 和 MHA 架构的作用 对主从复制集群的 master 进行监控 当 master 宕机后把写 VIP 迁移到新 master 重新配置集群中其他 slave 对新…

MMM 和 MHA 架构

MMM 和 MHA 架构的作用

  • 对主从复制集群的 master 进行监控
  • 当 master 宕机后把写 VIP 迁移到新 master
  • 重新配置集群中其他 slave 对新的 master 同步

MMM 架构

适用的主从复制架构

 主  --  主备
/ | 

代码100分

从 1 从 2 从 3

故障转移步骤

slave 服务器上的操作

  • 完成原 master 上已复制日志的恢复
  • 适用 change master 命令配置新 master

主备服务器上的操作

  • 设置 read_only=off
  • 迁移写 vip 到新 master

架构需要的资源

资源 数量 说明
主 DB 2 用于主备模式的主主复制配置
从 DB 0-N 可以配置 0 台或多台从服务器
IP 地址 2n+1 N 为 MySQL 服务器数量
监控用户 1 用于监控数据库状态的 MySQL 用户(replication client)
代理用户 1 用于 MMM 的 agent 端改变 read_only 状态(super,replication client,process)
复制用户 1 用于配置数据库状态的 MySQL 用户(replication slave)

架构配置步骤

  • 配置主主复制的集群架构
  • 安装 centos 的 YUM 扩展包
  • 安装所需的 Perl 支持包
  • 安装 MMM 工具包
  • 配置并启用 MMM 服务

架构优点

  • 提供了读写 VIP 配置,使读写请求都可以达到高可用
  • 工具包相对完善,不需要额外开发脚本
  • 完成故障转移后,可以持续对 MySQL 集群进行高可用监控

架构缺点

  • 故障切换简单粗暴易丢事务(主备使用 5.7 以后的半同步复制)
  • 不支持 GTID 的复制方式(自行修改 perl 脚本实现)
  • 社区不活跃,很久未更新版本

架构适用场景

  • 使用基于日志点的主从复制方式
  • 使用主主复制架构
  • 需要考虑读高可用的场景

欢迎扫描下方二维码,持续关注:

mysql 架构类问题之 MMM 架构「建议收藏」

互联网工程师(id:phpstcn),我们一起学习,一起进步

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10459.html

(0)
上一篇 2022-12-27
下一篇 2022-12-27

相关推荐

  • 数据库的优点_sql可视化

    数据库的优点_sql可视化文章的开头我们先来看下什么是图数据库,根据维基百科的定义:图数据库是使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。 虽然和关系型数据库存储的结构不同(关系型数据库为表结构,图…

    2023-02-03
    112
  • MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN「建议收藏」

    MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN「建议收藏」一、内连接(INNER JOIN) 获取两个表中字段匹配关系的记录,需要两个表都满足条件的数据才会返回。如下图阴影部分所示区域。 实例:有一张表table_a,数据如下: 表table_b,数据如下:

    2023-02-24
    131
  • 让用户输入的神奇函数

    让用户输入的神奇函数input()是Python中用于获取用户输入的函数,它会阻塞程序的执行,直到用户输入完毕并回车后才会继续执行程序。最基本的使用方法就是直接调用这个函数,然后等待用户输入:

    2024-02-28
    72
  • Python实现文本分割: split line

    Python实现文本分割: split line在Python中,split()函数是用于对字符串进行分割的函数。其最常见的用法是将一个长的字符串按照某个分隔符进行分割,得到一个由多个子字符串组成的列表。例如,我们可以使用split()函数将一个字符串按照空格进行分割:

    2024-03-25
    53
  • Redis学习笔记(十一) 服务器

    Redis学习笔记(十一) 服务器Redis服务器负责与多个客户端建立网络通信,处理客户端发送的命令请求,在数据库中保存客户端执行命令所产生的数据,并通过资源管理来维持服务器自身的运转。 命令请求过程(以set命令为例) 1、客户端向

    2023-03-01
    128
  • PostgreSQL 13 new feature

    PostgreSQL 13 new featurehttps://www.postgresql.org/docs/13/release-13.html 1. A big performance leap from 10 to 11. No much…

    2023-04-01
    171
  • 使用Python的Peewee创建数据库

    使用Python的Peewee创建数据库Python是一种流行的编程语言,被广泛应用于各种领域,其中包括数据处理、Web开发、人工智能等。当我们需要在Python应用程序中存储数据时,我们通常会使用数据库来保存和组织数据。Peewee是一个轻量级的Python ORM(Object-Relational Mapping)库。它提供了简单而强大的API,用于创建、查询和管理数据。在这篇文章中,我们将介绍如何使用Peewee创建数据库。

    2024-05-17
    46
  • 如何使用微表格制作表格_课程目的

    如何使用微表格制作表格_课程目的https://v.youku.com/v_show/id_XNDQ3MTAzOTM2OA==.html 上一期我们介绍了全局表的使用方法,下面我们来介绍一下 ER 表及在 DBLE 中实现的方法。…

    2022-12-27
    126

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注