码农知识堂 - 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

  • 相关阅读:
    C\C++ 使用RapidJSON库,轻松解析和生成JSON
    女孩子就是要打扮漂亮,让童年不留遗憾
    管件注塑过程中采用串级PID控制法实现高压压力精密控制的解决方案
    Vue+less+cssVal实现在线换肤
    C++中的自定义数据类型(结构体)解析
    srs流媒体服务器推流的流程
    【算法设计与分析 李春葆】计算几何(一)
    使用 Apache ECharts 实现圣都装饰的延期日历图
    Docker 网络管理及资源控制
    圆柱继承圆, 属性分析数据合理性 C#
  • 原文地址:https://blog.csdn.net/westos_yanzheng/article/details/126484245
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号