企业级mysql数据库集群实战——mysql的主从复制(基于position的异步复制)

一、为什么要有主从复制(读写分离)

通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低。
为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主数据库的负载。
而且如果主数据库宕机,可快速将业务系统切换到从数据库上,可避免数据丢失。

随着业务的增长,一台数据库服务器以满足不了需求了,负载过重,这时候就需要减压,实现负载均衡读写分离,一主一从或一主多从
主服务器只管写,从服务器管读,从而提高效率减轻压力。
主从复制分类:
主从同步:当用户写数据主服务器必须和从服务器同步一致了才告诉用户写入成功,等待时间太长
主从异步:只要用户访问写数据主服务器写入立马返回给用户成功
主从半步同步:当用户访问写数据主服务器写入并同步其中一个从服务器就返回给用户成功
备注:通常都是使用的主从异步,根据环境需求来选择,想要数据更安全选择半步同步

二、主从复制的原理

在详细介绍如何设置复制之前,先了解Mysql实际上是如何复制数据的,总的来说,复制有三个步骤:
第一:在主库上把数据更改记录到二进制日志(Binary Log)中,(这些记录被称为二进制日志事件)
第二:备库将主库上的日志复制到自己的中继(Relay Log)中,
第三:备库读取中继日志中的事件,将其重放到备库数据上。
图解:
在这里插入图片描述
如图显示了在备库有两个运行的线程,在主库上也有一个运行的线程:和其他普通连接一样,有备库发起的连接,在主库上同样拥有一个线程。
这种复制架构是实现了获取事件和重放事件解藕,允许这两个过程异步进行,也就是说I/O线程能够独立SQL线程之外工作,但这种架构也限制了复制的过程,其中最重要的一点是主库上并发运行的查询在备库只能串行化执行,因为只有一个SQL线程来重放中继日志中的事件。其实,这也是很多工作负载的性能瓶颈所在,虽然有一些针对该问题的解决反感,但大多数用户仍然受制于单线程。

二、配置mysql的主从复制

需要两台在同一网段的虚拟主机,一个作为主库(172.25.10.1),一个作为备库(172.25.10.2)
步骤一:解压mysql数据库安装包(安装包我们可以在官网上下载)(在主、备上都操作)
在这里插入图片描述
在这里插入图片描述
步骤二:从解压完的数据包安装对应的软件,一起下载,解决相互之间的依赖性(在主、备上都操作)
在这里插入图片描述
在这里插入图片描述
步骤三:查看mysql的初始密码,需要更改密码,注意:密码必须是大小写加特殊字符(在主、备上都操作)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
负责在主、从服务器传输各种修改动作的媒介是主服务器的二进制变更日志,这个日志记载着需要传输给从服务器的各种修改动作。因此,主服务器必须激活二进制日志功能。从服务器必须具备足以让它连接主服务器并请求主服务器把二进制变更日志传输给它的权限
步骤四:在主库主机的mysql的配置文件vim /etc/my.conf,添加内容,需要打开二进制日志,并指定一个独一无二的服务器ID(server ID),重启服务
在这里插入图片描述
步骤五:在备库主机的mysql的配置文件添加(跟主库添加的内容不一样),重启服务

在这里插入图片描述

步骤六:master节点(主库)的数据库初始化结束后,就可以使用设置的密码登录数据库了

mysql -uroot -pWestos+123
show databases;
GRANT REPLICATION SLAVE ON . TO repl@‘172.25.10.%’ identified by ‘(密码)’ ;授权为可以复制master节点数据的slave节点
show plugins;查看插件,因为有密码插件,所以密码必须设置为复杂的
flush privileges;刷新
show master status;查看master节点的状态

在这里插入图片描述
在这里插入图片描述

步骤七:在slave节点(备库)
在备库上尝试连接master的数据库,测试repl帐号
mysql -h 172.25.10.1 -urepl -pWestos+123
可以登录,但是查看不到任何信息,因为没有权限

在这里插入图片描述
现在设置mysql的主从复制:
mysql> CHANGE MASTER TO在这个slave节点上面设置管理它的master节点
-> MASTER_HOST=‘172.25.10.1’,主机信息 -> MASTER_USER=‘repl’,用户
-> MASTER_PASSWORD=‘Westos+123’,密码
-> MASTER_LOG_FILE=‘mysql-bin.000002’,基于position的主从复制的重要信息
-> MASTER_LOG_POS=984;基于position的主从复制的重要信息 start slave;开启本节点的slave show slave status\G 查看slave节点的状态

start slave;打开slave节点

在这里插入图片描述

步骤八:在备库上查看主从的数据库是否配置成功!

在这里插入图片描述

测试
一、在主库上建数据库和表
二、在备库上查看,是否能看到主库所建立的数据库
三、可以看到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值