zoukankan      html  css  js  c++  java
  • Seconds_Behind_Master的真正含义

    系统:centos7

    版本:mariadb 10.1.21

    1、Seconds_Behind_Master的含义

    本质上,Seconds_Behind_Master表示:slave的SQL线程与I/O线程的时间差。

    只有当网速较快时,Seconds_Behind_Master才能较好的估计slave的SQL线程相对于master的延迟。
    当master与slave之间的网速较慢时,Seconds_Behind_Master的值通常是0。

    2、例子

    在主库上执行了一个非常大的event,在这个event在主库上没执行完毕的时候,从库的SBM会显示为0,而当主库执行完毕传到从库上开始执行的时候,就会显示SBM非常巨大了

    模拟场景:
    步骤1:主库新建一张表并插入1000万+数据

    MariaDB [test]> create table aaa as select * from log_user_like; 
    

    步骤2:sql未执行完成前,主库从库状态

    Mysql>show variables like ‘%gtid%’;
    主库(未执行完sql): 
    gtid_binlog_pos        | 0-2-4445157 |
    gtid_binlog_state       | 0-2-4445157 |
    gtid_current_pos       | 0-2-4445157 |
    从库(未执行完sql):
    gtid_current_pos       | 0-2-4445157 |
    gtid_slave_pos         | 0-2-4445157 |
    Mysql>show variables like ‘%gtid%’;
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
            Seconds_Behind_Master: 0
                       Using_Gtid: Slave_Pos
                      Gtid_IO_Pos: 0-2-4445158
    

    步骤3:sql执行完成后,主库从库状态

    主库(执行完sql): 
    gtid_binlog_pos        | 0-2-4445158 |
    gtid_binlog_state       | 0-2-4445158 |
    gtid_current_pos       | 0-2-4445158 |
    从库(从库同步没有完成):
    gtid_current_pos       | 0-2-4445157 |
    gtid_slave_pos         | 0-2-4445157 |
    Mysql>show variables like ‘%gtid%’;
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
            Seconds_Behind_Master: 95     -----大的事务执行完成后才会出现延迟
                       Using_Gtid: Slave_Pos
                      Gtid_IO_Pos: 0-2-4445158
    
  • 相关阅读:
    SpringBoot集成Redis
    独享锁 & 共享锁
    公平锁与非公平锁
    如何上传本地代码到码云
    SpringBoot+Mybatis+Pagehelper分页
    SpringBoot集成Mybatis(0配置注解版)
    高并发下接口幂等性解决方案
    SpringBoot全局配置文件
    干货
    Spring读取外部的资源配置文件—@PropertySource和@Value实现资源文件配置
  • 原文地址:https://www.cnblogs.com/icyblog/p/7201975.html
Copyright © 2011-2022 走看看