mysql主从切换步骤(mysql改为主从最简单方法)

一、遇到的坑

一个月前,我们在测试环境部署了一套 MySQL 高可用架构,也就是 MySQL 双主 + Keepalived 的模式。

在这一个月遇到了很多坑

  • 因为两个 MySQL 节点都可以写入,极其容易造成主键重复,进而导致主从同步失败。
  • 同步失败后,Slave_SQL_Thread 线程就停了,除非解决了同步的错误,才能继续进行同步。
  • 同步失败的错误,不会只有一条记录有问题,往往是一大片的同步问题。
  • 两个节点互相缺少对方的数据。
  • 主从的同步延迟,切换到新主库后,数据不是最新。
  • 当出现不一致时,无法确定以哪个库为准。

造成上面问题的主要原因就是因为两个节点都支持写入 + 双主可以随时切换。

解决这种问题的方案有 改进自增主键的步长(影响未评估),使用 GTID 方案(未验证)。即使这样,双主同步的风险还是有,而且不同步后,如何处理是个大难题。

那么回到我们最初的想法:为什么会选择双主?

最开始的目的就是为了高可用。双主就是说有一台 MySQL 节点挂了,另外一台能够顶上,对于用户来说是无感的,给运维人员一定的缓冲时间来排查 MySQL 故障。另外老的主节点恢复后,不用改配置就能立即成为从节点。

经过这一个月的 MySQL 双主模式的试运行,最后我们还是决定切换到 MySQL 主 – 从模式。

双主模式就是两个节点即是主节点也是从节点,那我们现在切换到一主一从模式,就可以认为是降级。接下来我们聊聊双主换成主从的思路和步骤。

二、双主降为主从

双主模式

双主模式的原理图如下:

mysql主从切换步骤(mysql改为主从最简单方法)

两个主节点,都安装了 KeepAlived 高可用组件,对外提供了一个 VIP,只有一个节点接管 VIP,客户端访问的请求都是到这个 VIP,另外一个节点处于待机状态。

主从模式

和双主不一样的地方如下,从节点是只读的。

mysql主从切换步骤(mysql改为主从最简单方法)

一主一从是主从模式中的一种,具有以下特点:

  • 一个主节点,一个从节点,主节点提供给客户端访问,从节点只通过主节点的 binlog 进行数据同步。
  • 从节点是只读的。从节点可以作为只读节点提供类似报表查询等耗时读操作。
  • 主节点宕机后,从节点成为主节点,也是高可用的一种方案。

相对于双主的高可用方案,不同之处如下:

  • 主从切换需要用脚本将从库设置为可读可写。
  • 主从切换后,需要将从库设置为不同步老主库。
  • 主从切换后,老的主库恢复后,需要人工设置为只读,且开启同步新主库的功能。

这样来看,主从模式在异常情况下,多了些人工操作。

在异常情况下,主从切换一般是这样处理的:通过脚本监测主节点是否宕机,如果主库宕机了,则从库自动切换为新的主库,待老主库恢复后,就作为从库同步新主库数据,新主库上的 Keepalived 接管 VIP。

目前改为主从模式有两种方式:

  • 简单方式:人工切换模式,主节点故障后需要人工切换主从。
  • 复杂方式:高可用方式,主节点故障后,主从自动切换,读写分离自动切换。

本篇只涉及简单方式,复杂方式的原理和配置步骤放到下篇专门讲解。

三、改为主从的简单方法

简单方式的主从切换流程如下:

mysql主从切换步骤(mysql改为主从最简单方法)

和双主模式的主从切换的区别是,从节点是只读的,Keepalived 没有启动,需要人工操作主从切换和启动 Keepalived。

修改配置的步骤如下

① 为了避免从节点上的 Keepalived 自动接管 VIP 的情况出现,将从节点的 Keepalived 停止,如果遇到主节点故障,则需要人工干预来进行主从切换。从节点切换为主节点后,重新启动从节点 Keepalived。

systemctl status keepalived

② 保留主节点的 Keepalived,保证 MySQL 的连接信息都不需要变。

③ 主节点 node1 停用 MySQL 的同步线程。

STOP SLAVE

④ 从节点 node2 设置 MySQL 为只读模式。

# 修改 my.cnf 文件read_only = 1

⑤ 移除主节点 node1 同步 node2 MySQL 的权限。

⑥ 从节点 node1 的开机启动项中移除 keepalived 服务自启动。

# 修改启动项配置sudo vim /etc/rc.local# 移除以下脚本systemctl start keepalived

四、总结

双主高可用的坑确实比较多,没有 MySQL 的硬核知识真的很难搞定。笔者在这一个月的实践中,深刻体会到了双主同步的难点所在,最后还是选择了一主一从的模式。

另外因为最开始的配置都是双主模式下的,所以要修改一些配置,来改为主从模式。因项目时间比较紧,目前采取的是非高可用的主从模式。

对于高可用的主从模式,因涉及的原理和步

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人,不代表IT壹频道。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。转载请注明出处:https://www.1pindao.com/baike/25186.html

(0)
上一篇 2022年 12月 24日 16:21:21
下一篇 2022年 12月 24日 16:27:28

相关推荐

  • 打印机驱动怎么卸载(win10打印机驱动卸载方法)

    电脑每个硬件想要运行的话就需要系统里面的驱动程序,有时候硬件运行出现问题就需要卸载重装驱动程序来修复问题,那么如何卸载电脑上的驱动程序呢? 系统:win10专业版 电脑:联想Ideapad 700-15ISK-ISE 1、首先鼠标右键桌面上的此电脑图标,然后在弹出来的窗口中选择属性选项。 2、在进入系统界面后,在左侧找到设备管理器,点击然后进入设备管理器界面…

    2023年 1月 28日 百科知识
    124
  • 一个标准大气压等于多少pa(全面讲解关于大气压强的知识)

    什么是大气压强 大气对浸没在它里面的物体的压强叫做大气压强,简称大气压。 产生的原因 空气的重力和大气的流动性。 重力很好理解,这里解释一下流动性。空气中有水分子,氧气分子,氮气分子,二氧化碳分子等等,这些分子就像幼儿园的小朋友,不仅会上蹿下跳还会东奔西跑,这就是流动性。 流动为什么会 产生压强呢?你想啊,这些“小朋友”跑来跑去,撞到墙壁上,撞到你身上,就有…

    2023年 1月 12日 百科知识
    111
  • 机械键盘轴的区别是什么(机械键盘各个轴的区别详解)

    机械键盘参数 机械键盘 机械键盘每个按键都是独立的机械结构,且存在多种手感不同的机械设计,因此,厂家会以颜色对不同手感的轴体进行命名区分,降低了买家对轴体的选择成本。 总行程 按键从按下到触底所运动的距离; 起始压力 按键启动所需的按压力度; 触发行程(键程) 按键从按下到实际发生信号的距离,键程越短则信号产生越快,但也越容易误触; 触发压力 按下按键直至发…

    2023年 1月 3日
    119
  • tft是什么意思(一文讲透tft)

    TFT全称为Thin Film Transistor(薄膜晶体管),是场效应晶体管的种类之一,大致的制作方式是在基板上沉积各种不同的薄膜,如半导体主动层、介电层和金属电极层。 图1 TFT的历史 人类对 TFT 的研究工作已经有很长的历史。早在 1925 年,Julius Edger Lilienfeld 首次提出结型场效应晶体管 (FET) 的基本定律,开…

    2022年 12月 18日 百科知识
    172
  • 2022年长焦相机推荐(画质最好最便宜的5款长焦相机)

    松下Lumix FZ330 / FZ300 使用 Panasonic DMC-FZ300K 可以轻松实现专业品质的多媒体成像。 强大的 24 倍变焦和恒定 f2.8 光圈让您在低光照条件下自信地拍摄,并且不会因较慢的快门速度而导致结果模糊的风险。 4K PHOTO 技术可让您以每秒 30 帧的速度拍摄水晶般清晰的 4K 超高清视频,并将它们提取为单独的照片,…

    2023年 1月 12日 百科知识
    147
  • 开公司的基本流程及费用2022(办理公司营业执照流程和费用)

    新年伊始,老账人的后台就收到了很多关于注册公司相关的私信,包括需要什么材料?要走什么流程?注册资金最少准备多少…… 今天老账人统一为各位老板解答: 一、注册公司需要准备的材料 现在注册公司门槛很低,一般只要你想注册公司,拿到营业执照,获得经营资格,都可以在短短的时间之内就办理好。 如果是由几位股东一起开公司,而且都是自然人,那么就要提…

    2022年 12月 12日 百科知识
    188