MySQL运维15-一主一从读写分离

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

一、读写分离介绍

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

  MySQL运维15-一主一从读写分离

二、一主一从原理

  MySQL的主从复制是基于二进制(binlog)实现的

  MySQL运维15-一主一从读写分离

  说明1:当主服务器的MySQL执行了DML,DDL语句之后,会将数据的变更写入到binlog日志中

  说明2:在从服务器上有一个IOThread线程会读取主服务器上的binlog日志,然后写入到自己的中继日志(relay log)中

  说明3:在从服务器上还有一个SQLThread线程会从自己的中继日志(relaylog)中读取数据变更,然后反映到自身的数据库上

三、主从复制准备

  两台MySQL主机

  192.168.3.91:角色master

  192.168.3.90:角色slave

  具体主从复制的配置如果不会的请参考《MySQL运维2-主从复制》

  MySQL运维15-一主一从读写分离

  在从服务器上查看主从配置。

  然后在主服务器上创建rw数据库,这时在从库上就会自动创建rw数据库  

  MySQL运维15-一主一从读写分离

  然后再在主服务器上的rw库中创建一个tb_test用于测试的表

create table tb_test(id int auto_increment primary key, name varchar(20));  

  MySQL运维15-一主一从读写分离

四、配置schema.xml

  MySQL运维15-一主一从读写分离

  说明1:在业务中如果逻辑库中的所有表都要做读写分离,则可以在schema标签中省略所有的表

  说明2:在dataHost数据节点中的配置中注意balance的值只能是“1”或者“3”,balance值的释义

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

  说明3:一组读写分离的库,其中readHost标签是嵌在writeHost标签中的

  说明4:因为要读写分离,所以读写节点上的url是不同的

五、配置server.xml

  MySQL运维15-一主一从读写分离

  说明1:为root用户增加rw库的权限

六、读写分离测试

  首先重启Mycat  

  MySQL运维15-一主一从读写分离

  登录Mycat

  MySQL运维15-一主一从读写分离

  查看逻辑库和逻辑表

  MySQL运维15-一主一从读写分离

  说明1:我们在schema.xml没有配置逻辑表,所以会把rw数据库中的表,全部当做逻辑表,即我们之前创建的tb_test表会查询出来。

  插入数据进行测试

insert into tb_test(name) values ("张三");
insert into tb_test(name) values ("李四");
insert into tb_test(name) values ("王五");

  MySQL运维15-一主一从读写分离

  MySQL运维15-一主一从读写分离

  这时主库和从库的tb_test表中都有了数据,进行查询测试。

  MySQL运维15-一主一从读写分离

  但是这个时候,我们并分不清这个查询出来的数据是主表的还是从表的,这时我们将从表中的“张三”改为“张三1”,因为主从复制,只是单向的从主到从复制,即主表改了,从表会跟着一起改,但是从表改了,主表的数据是不会改的。

  MySQL运维15-一主一从读写分离

  再次查询验证

  MySQL运维15-一主一从读写分离

  说明1:通过查询的数据得知,我们读取的数据是来自我们配置的从库的数据,即实现了读的数据是从库中的数据。

  说明2:因为主从复制是从到主到从单向的复制,所以说明我们写数据一定是写入到主库的,不然从库是不会有数据的。

  说明3:所以我们已经实现了简单的数据读写分离。

 文章来源地址https://www.toymoban.com/news/detail-760492.html

到了这里,关于MySQL运维15-一主一从读写分离的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Docker搭建MySQL8.0主从复制(一主一从)

    宿主机使用的版本为 19045 的win10专业版,MySQL使用的是8.0+,Docker容器使用Linux。 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能,CMD中运行: “Docker Desktop Installer.exe” install --installation-dir= --installation-dir=path : changes the default installation location ( C:Program Fil

    2024年01月25日
    浏览(32)
  • MySQL:一主两从架构(读写分离)

    slave会从master读取binlog来进行数据同步 (1): master将数据改变记录到二进制日志binlog中; (2): slave上执行 start slave 命令后,slave会创建一个IO线程,用来连接master,请求master中的binlog; (3): 当slave连接master时,master会创建一个log dump线程,用于发送binlog内容。在读取binlog的内容的操

    2023年04月09日
    浏览(31)
  • MySQL8主从复制之一主一从实战

    实战环境,Windows Server 2008R2+MySQL8.0.27 操作系统 MySQL版本 主/从库 IP 同步用户 同步用户密码 Windows Server 2008R2+ mysql-8.0.27-winx64.zip master 192.168.3.246 synchadmin synchadmin Windows Server 2008R2+ mysql-8.0.27-winx64.zip slave 192.168.3.247 – – 截至到2021-11-29最新版本为 Mysql-8.0.27 官网下载:https://dev.

    2024年01月19日
    浏览(35)
  • MySQL运维16-双主双从读写分离

    在MySQL多主多从的架构配置中和双主双从是一样的,学会了双主双从的架构部署,多主多从的配置也同样就回了。下面以双主双从作为示例演示。其中一个主机maste1用于处理所有写请求,它的从机slave1和另外一台主机master2还有它的从机salve2负责所有读数据请求,当master1主机宕

    2024年02月04日
    浏览(35)
  • 十五天MySQL学习计划(运维篇-完结)读写分离-第十五天

    1.读写分离 ​ 读写分离,简单的说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主服务器提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力。 ​ 通过mycat即可轻易实现上述功能,不仅可以支持mysql,也可以支持oracle和sql server。 2.一主

    2024年02月05日
    浏览(28)
  • 【数据库集群】之一主一从

    集群架构设计的三个维度:可用性、扩展性、一致性 所谓mysql集群就是把多台数据库集成在一起提供数据库服务。 集群的目的: 负载均衡:解决高并发 高可用HA:服务可用性 远程备灾:数据有效性 对于数据库之上的业务层来说,基于 MySQL 的主从复制集群,单点写入 Master

    2024年02月01日
    浏览(38)
  • 【实现openGauss5.0企业版一主一备搭建部署】

    👈【上一篇】 💖The Begin💖 点点关注,收藏不迷路💖 【下一篇】👉 openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。   🔊 本次安装环境 [root@pg-node0

    2024年02月12日
    浏览(25)
  • SQL运维-读写分离

           

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

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

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

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

    2024年02月15日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包