Mysql 的复制、读写分离和基于MHA的高可用

本文详细介绍了MySQL的主从复制、基于组提交的并行复制、半同步复制、读写分离、级联复制以及MHA实现的高可用方案。通过配置GTID、优化并行复制和设置半同步,确保数据一致性和高可用性。
摘要由CSDN通过智能技术生成

一、数据库的主从复制(基于gtid)

配置环境:server2为master  ip:172.25.77.2

                    server3为slave     ip:172.25.77.3

我这里使用的mysql版本为5.7

修改master的配置文件如图:

log-bin=mysql-bin 开启二进制日志;二进制日志必须开启,因为数据的同步实质上就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍。

开启gtid模式

slave端配置如图

master登陆mysql 进行授权:

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘admin’@’172.25.77.%’ IDENTIFIED BY ‘Redhat-98k’;

 mysql>FLUSH PRIVILEGES;刷新数据使其更新

在slave指定要复制的master;

change master to master_host='172.25.77.2',master_user='admin',master_password='Redhat-98k',master_auto_position=1;

slave端开启服务 start slave;

查看状态:SQL线程和IO线程,这两个线程yes即主从复制完成

测试:

master端创建linux数据库,并插入表kkk,写入内容如图:

slave端查看同步是否成功:





二、基于组提交的并行复制

基于组的并发复制,可以支持在一个database中,并发执行relaylog中的事务。相同的二进制日志组在master上提交并行应用到slave节点上,没有跨数据库的限制,并且不需要把数据分割到多个数据库。

更改slave配置文件


slave-parallel-type=LOGICAL_CLOCK 基于组提交的并行用户
slave-parallel-workers=16         开启16个work:单线程变成多线程(前两个必须加入,后面为优化)
master_info_repository=TABLE      优化选项,默认以文件存储,记录master信息,用表来记录,更新速度更快   
relay_log_info_repository=TABLE  读日志信息,用表来记录(原来是刷在磁盘里)

relay_log_recovery=ON            激活recovery:读取master二进制日志,如果损坏,直接丢弃然后重新读取

配置完成,查看三个表的信息

master进程查看

slave进程查看



三、半同步复制

MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值