云原生笔记6

一、Mysql 实验

(一)Mysql 源码编译

1.下载安装包

可以直接去浏览器官网下载好压缩包,上传到虚拟机:

2.源码编译

3.部署

4.数据结构初始化

可以看到默认数据库的 root 用户密码:

5.启动

6.安全初始化

增加两台主机(node2 和 node3):

node2:

node3

测试:

(二)主从架构

1.编写 my.cnf 主配置文件

node1:

node2:

node3:

在三台主机中重启数据库:

2.建立同步时需要用到的数据库账号

node1:

node2:

3.配置数据库一主一从

在 master 中查看日志文件名称及 id:

在 slave 主机中:

数据同步成功,及日志回访成功:

4.测试

在 master 中建立库:

在 slave 主机中可以实现数据同步:

5.加入新的数据库到当前一主一从

模拟一主一从中已经存在数据情况:

加入新从库时需要手动拉平数据:

6.将新库加入主从结构中

在 master 中查看日志的 id:

node3:

7.测试一主两从

在 master 中建立数据:

在新加入的 slave 中(node3)查看信息:

(三)主从架构中的使用技巧及优化

1.延迟复制

在指定需要延迟同步的 slave 主机中(node2):

在 master 主机中对数据进行更改:

在未被延迟的 slave 数据库中查看是否数据操作动作被同步(node3):

在被设定延迟复制的主机中查看动作是否被同步(60秒内库不变),延迟时间过后再次查看,库已经同步了。

2.慢查询日志

查看慢查询日志是否开启:

开启慢查询日志:

检测慢查询日志(慢查询阈值):

不会生成慢查询日志:

3.gtid 模式

在 master 和 slave中 默认 gtid 模式是未开启的:

在三台主机中新增参数,并全部重启:

在三台主机中分别查看 gtid 模式是否开启:

在从库中停止 slave 功能:

4.多线程回放

在 slave 主机中,默认回访日志时使用单线程回放:

开启多线程回放日志:

查看更改生效信息:

5.半同步模式

在 master 主机中操作:

在 slave 主机中(node2 和 node3):

测试(在主库中):

模拟 ack 故障 在所有 slave 主机中(把两台从机的 IO_THREAD 都关掉后,有等待ack时间):

在主库写入数据:

恢复故障 在所有 slave 主机中

(四)MHA 高可用集群环境配置

1.准备工作-保证数据一致性

重新初始化数据(先关掉 mysql 服务):

重新配置主从,在剩下的 slave 主机中:

2.在所有主机中安装 Mha 相应软件

实现免密登录:

新增一台主机(MHA),配置:

验证组建是否安装成功:

在 mha 节点:

3.在 slave 中安装相应软件

4.修改 MHA-Manager 中的检测代码

5.为 MHA 建立远程登录用户

6.生成 MHA-manager 的配置文件模板

7.修改配置文件

8.检测环境

9.在 slave 中安装 mha-node 软件依赖

在所有的数据库主机中安装依赖:

后续和 MHA 的配置一样,如下载失败,可改为使用 http 。最后重新进入 cpan 下载即可:

验证是否成功:

(五)集群切换操作

1.手动切换

(1)master 无故障切换

默认状态:

执行切换,把 master 切换到 node2:

(2)故障后切换

查看切换信息:

当出现故障切换后,mha 主机中会出现切换锁文件,文件存在后不能再次执行切换:

2.自动切换

为了方便观察建议开启两个 shell:

(六)还原 mysql 所有节点

1.利用 ansible 还原

2.手动还原

(七)部署组复制

设置所有 mysql 节点的解析:

配置组复制-在首台主机中:

配置组复制在其余主机中:

测试(所有节点是否可以执行读写并数据是否同步):

node1

node2

node3

(八)Mysqlrouter

1.软件下载

2.安装

3.配置文件

4.部署

5.测试

在 mysq l节点的任意主机中添加 root 远程登录:

相关推荐
在角落发呆7 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
yi0117 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
_upupup8 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
百度一下吧8 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
JeJe同学8 小时前
Docker镜像导入、容器启动
linux·运维·docker
志尊宝8 小时前
Vue3 零基础每日笔记(073):keep-alive 页面缓存实战——列表页返回不丢状态
vue.js·笔记·缓存·#vue #前端 #前端开发·#javascript·#vue.js
Jason_zhao_MR8 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
回眸&啤酒鸭9 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
闲云野鹤在人间9 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
weixin_4481199410 小时前
Datawhale Easy Data × AI:笔记1 已重做,看新的笔记
笔记