码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL运维15-一主一从读写分离


    合集 - mysql(39)
    1.侯哥的Python分享2019-04-162.MySQL基础1-关系型数据库与非关系型数据库2022-03-173.MySQL基础2-数据库及表的操作2022-03-174.MySQL基础3-数据库增删改操作2022-03-175.MySQL基础4-数据查询2023-07-176.MySQL基础5-用户及权限管理2023-07-187.MySQL基础6-常用数据库函数2023-07-188.MySQL基础7-约束2023-07-209.MySQL基础8-多表查询2023-07-2110.MySQL基础9-事务基础2023-08-3111.MySQL高级1-存储引擎2023-07-2412.MySQL高级2-SQL性能分析2023-07-2713.MySQL高级3-索引的结构和分类2023-07-2714.MySQL高级4-索引的使用规则2023-07-2815.MySQL高级5-SQL优化2023-07-3116.MySQL高级6-视图2023-07-3117.MySQL高级7-存储过程2023-08-1418.MySQL高级8-触发器2023-08-1719.MySQL高级9-锁2023-09-0420.MySQL高级10-InnoDB引擎存储架构2023-09-1921.MySQL高级11-后台进程2023-09-2022.MySQL高级12-事务原理 2023-09-2023.MySQL高级13-MySQL管理工具2023-09-2124.MySQL运维1-日志2023-09-2525.MySQL运维2-主从复制2023-09-2726.MySQL运维3-分库分表策略2023-12-1227.MySQL运维4-Mycat入门2023-12-1428.MySQL运维5-Mycat配置2023-12-1429.MySQL运维6-Mycat分库分表之垂直分库2023-12-1730.MySQL运维7-Mycat分库分表之取模分片2023-12-1831.MySQL运维8-Mycat分库分表之范围分片2023-12-1832.MySQL运维9-Mycat分库分表之枚举分片2023-12-1833.MySQL运维10-Mycat分库分表之一致性哈希分片2023-12-1934.MySQL运维11-Mycat分库分表之应用指定分片2023-12-1935.MySQL运维12-Mycat分库分表之按天分片2023-12-2036.MySQL运维13-Mycat分库分表之按月分片2023-12-2037.MySQL运维14-管理及监控工具Mycat-web的安装配置2023-12-21
    38.MySQL运维15-一主一从读写分离2023-12-25
    39.MySQL运维16-双主双从读写分离2023-12-25
    收起

    阅读目录

    • 一、读写分离介绍
    • 二、一主一从原理
    • 三、主从复制准备
    • 四、配置schema.xml
    • 五、配置server.xml
    • 六、读写分离测试

    一、读写分离介绍

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

      

    二、一主一从原理

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

      

      说明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-主从复制》

      

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

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

      

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

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

      

    四、配置schema.xml

      

      说明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

      

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

    六、读写分离测试

      首先重启Mycat  

      

      登录Mycat

      

      查看逻辑库和逻辑表

      

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

      插入数据进行测试

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

      

      

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

      

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

      

      再次查询验证

      

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

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

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

     

  • 相关阅读:
    < Python全景系列-6 > 掌握Python面向对象编程的关键:深度探索类与对象
    Django面对高并发现象时处理方法
    竞赛选题 深度学习人体跌倒检测 -yolo 机器视觉 opencv python
    Java多线程案例【定时器】
    【环境】我决定半场开香槟!ubuntu20.04 安装 pytorch
    什么是网络智能运维?如何保障业务7x24小时在线?
    第一百六十六回 如何创建以图片为背景的页面
    核心函数--少儿编程
    含文档+PPT+源码等]精品基于PHP实现的实验室安全系统设计与实现[包运行成功]计算机PHP毕业设计项目源码
    ViT论文详解
  • 原文地址:https://www.cnblogs.com/Se7eN-HOU/p/17926268.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号