目录
一 Mysql 在服务器中的部署方法
1.1 在Linux下部署mysql
1.1.1 安装依赖性:
1.1.2 下载并解压源码包
1.1.3 源码编译安装mysql
注意:当cmake出错后如果想重新检测,删除 mysql-5.7.44 中 CMakeCache.txt即可
1.1.4 部署mysql
测试:
1.1.5 对另一台主机进行源码编译
测试:
二 mysql的组从复制
2.1 配置mastesr
2.2 配置salve
测试:
注意:
2.3 当有数据时添加slave2
测试:
注意:
2.4 延迟复制
测试:
2.5 慢查询日志
- 慢查询,顾名思义,执行很慢的查询
- 当执行SQL超过long_query_time参数设定的时间阈值(默认10s)时,就被认为是慢查询,这个
- SQL语句就是需要优化的
- 慢查询被记录在慢查询日志里
- 慢查询日志默认是不开启的
- 如果需要优化SQL语句,就可以开启这个功能,它可以让你很容易地知道哪些语句是需要优化的。
开启慢查询日志
测试慢查询
2.6 mysql的并行复制
查看 slave 中的线程信息
默认情况下 slave 中使用的是 sql 单线程回放
在 master 中时多用户读写,如果使用 sql 单线程回放那么会造成组从延迟严重
开启 MySQL 的多线程回放可以解决上述问题
此时 sql 线程转化为协调线程, 16 个 worker 负责处理 sql 协调线程发送过来的处理请求
2.7 原理刨析
三个线程
复制三步骤
具体操作
2.8 架构缺陷
三 半同步模式
3.1半同步模式原理
3.2 gtid模式
当激活 GITD 之后
当 master 出现问题后, slave2 和 master 的数据最接近,会被作为新的 master
slave1 指向新的 master ,但是他不会去检测新的 master 的 pos id ,只需要继续读取自己 gtid_next 即可
设置gtid
3.3.启用半同步模式
在 master 端配置启用半同步模式
在 slave 端开启半同步功能
3.4.测试
在 master 端写入数据
模拟故障:
四 mysql高可用之组复制 (MGR)
4.1 组复制流程
注意:节点数量不能超过9台
4.2 组复制单主和多主模式
single-primary mode(单写或单主模式)
multi-primary mode(多写或多主模式)
4.3.实现mysql组复制
注意:应该全部都是ONLINE,应为我一开始没有在每个虚拟机上手动做地址解析
为了避免出错,在所有节点中从新生成数据库数据
编辑主配置文件:
#在复制配置文件到myql-node2和mysql-node3
注意:这里必须全部都是ONLINE才可以进行下面测试
测试:
在每个节点都可以完成读写
五 mysql-router(mysql路由)
MySQL Router
Mysql route的部署方式
我们需要在所有的数据库主机之外再开一台主机 mysql-router
测试:
注意:mysql router 并不能限制数据库的读写,访问分流
六 mysql高可用之MHA
6.1.MHA概述
为什么要用MHA?
什么是 MHA?
MHA 的组成
MHA 的特点
故障切换备选主库的算法
MHA工作原理
6.2 MHA部署实施
6.2.1 搭建主两从架构
6.2.2安装MHA所需要的软件
在软件中包含的工具包介绍
1.Manager 工具包主要包括以下几个工具:
- masterha_check_ssh #检查MHA的SSH配置状况
- masterha_check_repl #检查MySQL复制状况
- masterha_manger #启动MHA
- masterha_check_status #检测当前MHA运行状态
- masterha_master_monitor #检测master是否宕机
- masterha_master_switch #控制故障转移(自动或者手动)
- masterha_conf_host #添加或删除配置的server信息
2.Node 工具包 (通常由masterHA 主机直接调用,无需人为执行)
- save_binary_logs #保存和复制master的二进制日志
- apply_diff_relay_logs #识别差异的中继日志事件并将其差异的事件应用于其他的slave
- filter_mysqlbinlog #去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
- purge_relay_logs #清除中继日志(不会阻塞SQL线程)
6.2.3 配置MHA 的管理环境
1. 生成配置目录和配置文件
因为我们当前只有一套主从,所以我们只需要写一个配置文件即可
rpm 包中没有为我们准备配置文件的模板
可以解压源码包后在 samples 中找到配置文件的模板文件
2. 检测配置:
a )检测网络及 ssh 免密
b )检测数据主从复制情况
6.2.4 MHA的故障切换
MHA 的故障切换过程
共包括以下的步骤:
1. 配置文件检查阶段,这个阶段会检查整个集群配置文件配置
2. 宕机的 master 处理,这个阶段包括虚拟 ip 摘除操作,主机关机操作
3. 复制 dead master 和最新 slave 相差的 relay log ,并保存到 MHA Manger 具体的目录下
4. 识别含有最新更新的 slave
5. 应用从 master 保存的二进制日志事件( binlog events )
6. 提升一个 slave 为新的 master 进行复制
7. 使其他的 slave 连接新的 master 进行复制
切换方式:
master 未出现故障手动切换
检测:
master 故障手动切换
恢复故障 mysql 节点
自动切换
恢复故障节点
清除锁文件
6.2.5 为MHA添加VIP功能
模拟故障
恢复故障主机
手动切换后查看 vip 变化