4.mysql 组复制集群
首先对所有的节点重新初始化 因为对节点的数据一致性要求非常高
主从复制的时候 slave只会复制master的binlog日志 就是二进制日志 不会复制relay_log
在server1上
根据实际情况修改主机名和网段
log_slave_update=ON 意思就是 当slave的sql线程做完之后读取relay_log 中继回放之后 slave端自己也写份二进制日志
在server2 上
根据实际情况修改主机名和网段
在server3上
根据实际情况修改主机名和网段
一主多从的请求 通常是读的请求高于写 但是写的请求很高 每个节点都可以进行读写 这是分布式必须通过(多组模式)集群的方式进行横向扩容
测试 :所有节点都可以写数据
server1上
server2上
server3 上
此时 server1 server2 server3 数据都同步
5 mysql 读写分离
此实验组复制集群有三个节点 当外部应用在连接这个集群的时候,如果只连接其中一个节点,如果这个节点挂了,所以就得把它负载到其他节点,mysql 路由器 负责负载后端的节点
在server4上
在mysql集群中创建远程测试用户
因为组复制集群 所以12 13 也会创建远程测试用户
在11 上
在server 1 2 3 上分别安装软件
7001是只读权限 顺序是11 12 13
在server4上第一次连接
第一次是server4 与server1连接
在server4上第二次连接
此时 server1 不与server4连接
server2 与server4 连接
7002端口 读写权限 调度列表顺序为13 12 11
在server4上第一次执行
第一次是server4与server3 连接
当server3 挂掉之后
第二次在server4 上执行语句
此时 按照调度顺序 server4 与server2连接
6 mysql 高可用架构
创建一主两从集群
在master端
先关闭mysql 服务
/etc/init.d/mysqld stop
在slave端
先关闭mysql 服务
/etc/init.d/mysqld stop
其他节点以此内推
测试
在master端
在slave端
server2
server3
MHA部署
在server4 上安装管理端软件
管理端配置ssh免密
管理端能免密连接所有被控节点
复制客户端软件
在server1 server2 server3 上安装客户端软件
MHA配置
每个节点上也必须要有免密连接
检测各节点ssh免密连接
在master上设置mysql 管理员权限,slave节点会自动同步
检测主从复制集群状态
至此 实验环境配置完毕
mysql 高可用故障切换
手动切换 在当前主从状态都完好的情况
master正常 12会接管成master 原始的master会变成新的slave
检测
此时 在11 13 上指向的master都是1
当这个server2 这个master挂掉之后,这个时候slave就连不上去
这个时候就要切换一下
在管理端
当前是手工切换 没有生成锁定文件
执行完命令之后 快速变成了一个一主一从的架构 11 变成新的master 13 指向的11
12 怎么恢复呢
故障节点需要手动修复,重新加入主从集群
自动切换
故障切换后会生成lock文件,需要手动删除
在进行自动切换之前,必须保证主从集群正常,一主两从
此时 停掉11 上的master服务
此时 在管理端 master端会从11 变成12 并且生成一个锁定文件
此时 13会重新指向新的master
修复11
在11 上开启服务
这样就又构成了 一主两从 12 是master 11 13 是slave
======================================================
加入故障切换脚本和在线切换脚本
测试
此时 12 是master 谁是 master vlp 跟着master走
第一次需要手动添加
此时 停掉master上的服务
在14上查看日志
从12上又成功切换到11
那12 就得变回slave
手动恢复
以上是自动切换 再来一个手动切换
手动切换不生成锁定文件
VIP会随着master 漂移