码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Mysql集群及高可用-并行复制5


    系列文章目录

    Mysql集群及高可用-SQL线程的优化-并行复制5

    mysql集群及高可用

    • 系列文章目录
    • 一、Mysql集群-并行复制(sql线程的优化)
    • 二、Mysql集群-并行复制的配置
        • 2.1 slave_parallel_type
        • 2.2 slave_parallel_workers
        • 2.3 master_info_repository和relay_log_repository
        • 2.4 relay_log_recovery


    一、Mysql集群-并行复制(sql线程的优化)

    半同步优化的是io线程

    master并行写入,一个sql回放会导致延迟越来愈大

    直接百度查看 mysql5.7 mts 找到相应的参数即可

    解决延迟问题

    参考链接

    在这里插入图片描述


    二、Mysql集群-并行复制的配置

    2.1 slave_parallel_type

    server2:
    进入数据库后

    show variables like '%slave%';
    
    • 1

    DATABASE表示并行的基础是以数据库为基础,一个数据库开启一个线程
    但是实际是一个数据库很多的写入,如果按照DATABASE来sql回放发挥不出并行的性能

    在这里插入图片描述

    变更slave_parallel_type需要先停掉sql线程 (或者先stop slave;全局环境变量;start slave;)

    也可以写到主配置文件/etc/my.cnf重启数据库就可以(生产环境是不能随意重启,测试环境可以)

    所以最好是热添加(热生效)set global 临时的

    热生效配置后马上写入主配置文件/etc/my.cnf,要不然数据库服务重启后,前面设置的set global就会丢失

    在这里插入图片描述


    2.2 slave_parallel_workers

    slave_parallel_workers原先的sql线程会变成为协调线程,重建16个worker,不能设置1,设置1还不如原先的性能(不设置sql的并行复制)

    根据实际生产调整具体的worker是多少,官方测试是16

    因为一旦走了并行,机制就变化了,通过协调线程来做转发,性能一部分用在了转发上面

    在这里插入图片描述


    2.3 master_info_repository和relay_log_repository

    启动并行复制后,每次复制的时候,主从的信息会保留在数据目录/usr/local/mysql/data 下面的master.info和relay-log.info

    master.info
    server3:
    读取的文件,读取的号,master主机ip
    在这里插入图片描述
    relay-log.info
    server3:
    在这里插入图片描述


    激活并行复制后,文件变更速度比原先快得多,频繁的刷文件,这样的话,性能会下降,配合并行复制mts,官方建议开启两个参数选项

    master_info_repository=TABLE
    relay_log_repository=TABLE
    
    • 1
    • 2

    信息保存方式2种,一种是文件,一种是表(放在数据库中),由数据库系统做刷盘动作,而不是直接写入文件保存,这样开启并行复制的时候性能能提升


    server2:

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

    在这里插入图片描述
    slave状态没问题

    在这里插入图片描述

    master.info 和 relay-log.info 不存在了,变成数据库表了
    在这里插入图片描述


    进入数据库

    use mysql
    show tables;
    select * from slave_master_info;
    
    • 1
    • 2
    • 3

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


    2.4 relay_log_recovery

    slave 通过relay_log进行恢复

    relay_log_recovery=ON
    
    • 1

    server2:

    由于这个参数是只读,所以只能写到主配置文件中
    有些参数不能热生效,必须写入配置文件中
    在这里插入图片描述

    server3:

    由于是测试环境,所以直接在server3上的主配置文件/etc/my.cnf上面写上所有参数,重启数据库服务

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

    在这里插入图片描述
    在这里插入图片描述
    截取部分:
    里面16个sql线程

    在这里插入图片描述


    END

  • 相关阅读:
    在ubuntu中安装filezilla及解决 Ubuntu E:无法定位软件包问题
    微信小程序开发---生命周期函数
    Java版企业电子招标采购系统源码—企业战略布局下的采购寻源
    找不到vcruntime140.dll,无法继续执行代码,vcruntime140.dll怎么修复
    LeetCode【206.反转链表】(1)
    极客时间 - 《Linux 性能优化实战》
    大规模数据分析统一引擎Spark最新版本3.3.0入门实战
    计算机毕业设计Java校园面包超市系统(源码+系统+mysql数据库+Lw文档)
    【C++】哈希与布隆过滤器
    Spring Boot集成微信支付JSAPIV3保姆教程
  • 原文地址:https://blog.csdn.net/westos_yanzheng/article/details/126484245
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号