十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

这篇具有很好参考价值的文章主要介绍了十五天MySQL学习计划(运维篇-完结)读写分离-第十五天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

读写分离

1.读写分离

​ 读写分离,简单的说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主服务器提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力。

​ 通过mycat即可轻易实现上述功能,不仅可以支持mysql,也可以支持oracle和sql server。

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

2.一主一从

​ MySQL的主从复制,是基于二进制日志实现的。

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

3 .一主一从读写分离

​ mycat控制后台数据库的读写分离和负载均衡由schema.xml文件datahost标签的balance属性控制。

配置1


十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

配置2

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

参数值 含义
0 不开启读写分离机制,所有读操作都发送到当前可用的writehost上
1 全部的readhost与备用的writehost都参与select语句的负载均衡(主要针对于双主双从模式)
2 所有的读写操作都随机在writehost,readhost上分发
3 所有的读请求随机分发到writehost对应的readhost上执行,writehost不负担读压力
4.双主双从

​ 一个主机master用于处理所有写请求,它的从机slave1和另一台主机maste2还有它的从机slave2负责所有的主请求。当master1主机宕机后,master2主机负责写请求,master1,master2互为备机,架构图如下:

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

1.主库配置-第一台主库

​ 1.修改配置文件/etc/my.cnf

#mysql服务ID,保证整个集群环境中唯一
server-id=1
#指定同步的数据库
binlog-do-db=db01
binlog-do-db=db02
binlog-do-db=db03
#在作为数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates

​ 2.重启MySQL服务器

systemctl restart mysqld
2.主库配置第二台

​ 1.修改配置文件/etc/my.cnf

#mysql服务ID,保证整个集群环境中唯一
server-id=3
#指定同步的数据库
binlog-do-db=db01
binlog-do-db=db02
binlog-do-db=db03
#在作为数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates

​ 2.重启MySQL服务器

systemctl restart mysqld
3.两台主服务器都需要配置

1.两台主库创建账户并授权(8.0)

#创建授权用户,并设置密码,该用户可在任意主机连接该MySQL服务
create user 'itcast'@'%' identified with mysql_native_password by '1234.Com';
#为itcat用户分配主从复制权限
grant replication slave on *.* to 'itcast'@'%';

2.通过指令,查看两台主库的二进制日志名字和坐标位置

show master status;
4.从服务器配置(两台)

1.修改配置文件/etc/my.cnf

#mysql服务ID,保证整个集群环境中唯一
#第一台
server-id=2


#第四台
server-id=4

​ 2.重启MySQL服务器

systemctl restart mysqld

​ 3.两台从库配置关联主库

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

change master to master_host='xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos=xxx;

需要注意slave1对应的是master1,slave2对应的是master2.

​ 启动两台从库主从复制,查看从库状态

start slave;
show slave status\G
5.两台主服务器相互做主从

master2复制master1,master1复制master2

change master to master_host='xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos=xxx;

启动查看两台主服务器的主从复制

start slave;
show slave status\G
6.测试

分别在两台主库master1,master2上执行DDL,DML语句,查看涉及到数据库服务器的数据同步情况。

5.双主双从读写分离

​ mycat控制后台数据库的读写分离和负载均衡由schema.xml文件datahost标签的balance属性控制,通过writeType及switchType来完成失败自动切换的。、

十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

balance="1"
	代表全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1-》S1,M2-》S2.并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡;
write Type
	0:写操作都转发到第1台writeHost,writeHost1挂了,会切换到writeHost2上;
	1:所有操作都随机的发送到配置的writeHost上;
switchType
	-1:不自动切换
	1:自动切换

测试

​ 登录mycat,测试查询及更新操作,判定是否能够进行读写分离,以及读写分离的策略是否正确。

​ 当主库挂掉一个之后,是否能够自动切换。

6.总结

1.介绍

​ 读写分离是为了降低单台服务器的访问压力,写走主库,读走从库。

2.一主一从

​ MySQL主从复制是基于二进制日志binlog实现的。master,salve

3.一主一从读写分离

	<writehost> 	<readhost/> <writeHost>,balance属性

4.双主双从

​ 两台主库,相互复制,互为主备,增强MySQL的可用性

5.双主双从读写分离文章来源地址https://www.toymoban.com/news/detail-449959.html

	<writehost> 	<readhost/> <writeHost>,balance属性 writetype switchType

salve

3.一主一从读写分离

	<writehost> 	<readhost/> <writeHost>,balance属性

4.双主双从

​ 两台主库,相互复制,互为主备,增强MySQL的可用性

5.双主双从读写分离

	<writehost> 	<readhost/> <writeHost>,balance属性 writetype switchType

到了这里,关于十五天MySQL学习计划(运维篇-完结)读写分离-第十五天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库 --- 运维篇

    错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysqld

    2024年02月08日
    浏览(102)
  • Mysql运维篇(一) 日志类型

    一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。 一、mysql相关日志 首先,我们能接触到的,一般我们排查慢查询时,会去看慢查询日志。如果做过数据备份会恢复的,可能接触或用过BinLog。那还有其他的吗?对

    2024年01月21日
    浏览(74)
  • Mysql运维篇(二) 主从复制

    一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。 主库会生成一个I/O操作线程进去写的的操作,而从库则生成两个线程,其一是I/O读取线程,其二是一个SQL线程。 1、主库将数据的操作记录到一个二进制日志中(

    2024年01月23日
    浏览(40)
  • SQL运维-读写分离

           

    2024年02月14日
    浏览(60)
  • MySql运维篇---008:日志:错误日志、二进制日志、查询日志、慢查询日志,主从复制:概述 虚拟机更改ip注意事项、原理、搭建步骤

    错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中 发生任何严重错误时的相关信息 。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysq

    2024年02月04日
    浏览(69)
  • mysql面试题45:读写分离常见方案、哪些中间件可以实现读写分离

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 读写分离是一种常见的数据库架构方案,旨在分担数据库的读写压力,提高系统的性能和可扩展性。以下是两种常见的读写分离方案: 主从复制方案

    2024年02月07日
    浏览(39)
  • Mysql 主从复制、读写分离

    目录 前言 一、主从复制原理 1.1 MySQL的复制类型 1.2 mysql主从复制的工作原理 1.3 MySQL主从复制延迟 1.4 MySQL四种同步方式 1.5 MySQL支持的复制类型 二、 MySQL应用场景 三、主从复制实验 3.1 MySQL主从服务器时间同步 3.1.1 安装ntp、修改配置文件 3.1.2 两台SLAVE服务器配置 3.2 配置主从

    2024年02月16日
    浏览(33)
  • MySQL主从分离读写复制

    在高负载的生产环境里,把数据库进行读写分离,能显著提高系统的性能。下面对MySQL的进行读写分离。 试验环境 A机:IP:192.168.0.1 mysql版本:mysql-5.6.4,主数据服务器(只写操作) B机:IP:192.168.0.2 mysql版本:mysql-5.6.4,从数据服务器(只读操作) 步骤     1.修改主数据库服务器

    2024年02月09日
    浏览(47)
  • MySQL 读写分离

    目录 一、什么是读写分离? 二、为什么要读写分离呢? 三、什么时候要读写分离? 四、主从复制与读写分离 五、MySQL 读写分离原理 六、企业 使用MySQL 读写分离场景 1)基于程序代码内部实现 2)基于中间代理层实现         七、读写分离实验 7.1、Amoeba服务器配置 一、

    2024年02月16日
    浏览(51)
  • mysql(六)读写分离

    目录 前言 一、概述 二、配置JAVA环境及安装阿米巴 三、配置阿米巴  四、测试 总结 MySQL读写分离是一种常见的数据库架构设计模式,旨在提高系统的性能和可用性。它通过将读操作和写操作分离到不同的MySQL实例上来实现。 读写分离的原理是: 1. 主服务器(Master):负责处

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包