Lnmp架构之mysql数据库实战2

4、mysql组复制集群

一主多从的请求通常是读的请求高于写 ,但是如果写的请求很高,要求每个节点都可以进行读写,这时分布式必须通过(多组模式)集群的方式进行横向扩容。

组复制对节点的数据一致性要求非常高,因此要对所有的节点重新进行初始化:

Lnmp架构之mysql数据库实战2_第1张图片

编辑配置文件,根据实际情况修改主机名和网段

Lnmp架构之mysql数据库实战2_第2张图片

Lnmp架构之mysql数据库实战2_第3张图片Lnmp架构之mysql数据库实战2_第4张图片Lnmp架构之mysql数据库实战2_第5张图片

在server2上

Lnmp架构之mysql数据库实战2_第6张图片

只修改id和主机名

Lnmp架构之mysql数据库实战2_第7张图片Lnmp架构之mysql数据库实战2_第8张图片

在server3上

Lnmp架构之mysql数据库实战2_第9张图片

根据实际情况修改id和主机名

Lnmp架构之mysql数据库实战2_第10张图片Lnmp架构之mysql数据库实战2_第11张图片

在server1上查看组复制中的成员

Lnmp架构之mysql数据库实战2_第12张图片

测试:所有节点都可以写入数据

在server1上

Lnmp架构之mysql数据库实战2_第13张图片

在server2上

Lnmp架构之mysql数据库实战2_第14张图片

在server3上

Lnmp架构之mysql数据库实战2_第15张图片

5、mysql读写分离

延迟复制
如果在master端误操作,可以在slave端进行数据恢复,只需要停掉sql线程;
延迟只是延迟了sql ,IO已经复制过来了 ,数据已经在中继日志里保存起来了,只不过sql没有进行回放。

Lnmp架构之mysql数据库实战2_第16张图片

Lnmp架构之mysql数据库实战2_第17张图片Lnmp架构之mysql数据库实战2_第18张图片

Lnmp架构之mysql数据库实战2_第19张图片

路由类似于代理 ,此实验组复制集群有三个节点 当外部应用在连接这个集群的时候,如果只连接其中一个节点,如果这个节点挂了,所以就得把它负载到其他节点,mysql 路由器 负责负载后端的节点。

在server4上

Lnmp架构之mysql数据库实战2_第20张图片Lnmp架构之mysql数据库实战2_第21张图片

routing_strategy= round-robin  第一个访问11,第二个访问12,第三个访问13

routing_strategy=first-available 第一个可用的话就不会后面的,当第一个挂掉之后,才会到后面去

Lnmp架构之mysql数据库实战2_第22张图片

在mysql集群中创建远程测试用户

因为组复制集群,所以server2,server3上也会同步创建远程测试用户

在server1上

在server1,2,3上分别安装软件

Lnmp架构之mysql数据库实战2_第23张图片

7001端口是只读权限,顺序是11,12,13

当在server4上进行第一次执行时

Lnmp架构之mysql数据库实战2_第24张图片Lnmp架构之mysql数据库实战2_第25张图片

server1与server4建立连接

在server4上进行第二次执行时

Lnmp架构之mysql数据库实战2_第26张图片

server1会与server4断开连接,server2与server4建立连接

7002端口为读写权限,调度列表顺序为13,12,11

在server4上第一次执行

Lnmp架构之mysql数据库实战2_第27张图片

与server3建立连接

当挂掉server3时

在server4上进行第二次执行则会与server2建立连接

Lnmp架构之mysql数据库实战2_第28张图片

6、mysql高可用架构

重新创建一主两从集群,在master端关闭mysql服务 /etc/init.d/mysqld stop ,

删除mysql文件,修改主配置文件重新初始化

Lnmp架构之mysql数据库实战2_第29张图片Lnmp架构之mysql数据库实战2_第30张图片

master端重新初始化并建立用户

Lnmp架构之mysql数据库实战2_第31张图片

在slave端同样重新进行初始化(其他节点以此类推)

Lnmp架构之mysql数据库实战2_第32张图片Lnmp架构之mysql数据库实战2_第33张图片

测试

在master端

Lnmp架构之mysql数据库实战2_第34张图片

在slave端

server2

Lnmp架构之mysql数据库实战2_第35张图片

server3

Lnmp架构之mysql数据库实战2_第36张图片

一主两从架构完成,进行MHA部署

做一个管理端在server4上

在server4上安装管理软件

管理端配置ssh免密传输,免密连接所有被控节点

Lnmp架构之mysql数据库实战2_第37张图片Lnmp架构之mysql数据库实战2_第38张图片

复制客户端软件

Lnmp架构之mysql数据库实战2_第39张图片

在server1,sever2,server3上安装客户端软件

Lnmp架构之mysql数据库实战2_第40张图片

工具包

Lnmp架构之mysql数据库实战2_第41张图片

MHA配置

Lnmp架构之mysql数据库实战2_第42张图片Lnmp架构之mysql数据库实战2_第43张图片
注释需要删除

每个节点上也必须要有免密连接,检测各节点的ssh免密连接

Lnmp架构之mysql数据库实战2_第44张图片Lnmp架构之mysql数据库实战2_第45张图片

在master端设置mysql管理员权限,slave节点自动同步

检测主从复制集群状态

Lnmp架构之mysql数据库实战2_第46张图片Lnmp架构之mysql数据库实战2_第47张图片

实验环境搭建完成。

7、mysql高可用切换

(1)手动切换

master正常时,12会接管11成为master,原始的master会变成新的slave

Lnmp架构之mysql数据库实战2_第48张图片

检测(11和13都指向的master是12)

Lnmp架构之mysql数据库实战2_第49张图片Lnmp架构之mysql数据库实战2_第50张图片

当停掉server2这个master,slave就无法进行连接

Lnmp架构之mysql数据库实战2_第51张图片

在管理端

11重新变成master,快速变成了一个一主一从的架构Lnmp架构之mysql数据库实战2_第52张图片Lnmp架构之mysql数据库实战2_第53张图片

12如何恢复成slave

需要手动修复,重新加入主从集群

Lnmp架构之mysql数据库实战2_第54张图片

(2)自动切换(主从集群正常,一主两从)

故障切换后会生成lock文件,需要手动删除

此时,停掉server1上的mysql

Lnmp架构之mysql数据库实战2_第55张图片

自动切换成功,在13上可查看

修复11,在11上打开服务

Lnmp架构之mysql数据库实战2_第56张图片

此时,又构成了一主两从架构,12是master,11,13是slave

最后,删除管理端因为故障切换生成的的lock文件,以避免影响后面的操作

Lnmp架构之mysql数据库实战2_第57张图片


加入故障切换和在线切换脚本并对其做出相应的修改

Lnmp架构之mysql数据库实战2_第58张图片Lnmp架构之mysql数据库实战2_第59张图片Lnmp架构之mysql数据库实战2_第60张图片Lnmp架构之mysql数据库实战2_第61张图片

测试

Lnmp架构之mysql数据库实战2_第62张图片

查看管理端日志,重新切换成功

Lnmp架构之mysql数据库实战2_第63张图片

恢复12的slave端

手动恢复

Lnmp架构之mysql数据库实战2_第64张图片

再进行一次手动切换

删除自动切换生成的锁定文件

Lnmp架构之mysql数据库实战2_第65张图片Lnmp架构之mysql数据库实战2_第66张图片

手动切换不会生成锁定文件,VIP会随着master的改变而漂移

你可能感兴趣的:(数据库,架构,mysql)