MySQL Replication Thread States
1.主节点线程状态(Replication Master Thread States):
|
Finished reading one binlog; switching to next binlog |
线程 已经完成读取 binlog 文件,并切换到下一个 binlog 文件 |
|
Master has sent all binlog to slave; waiting for more updates |
线程已经从二进制日志中读取了所有剩余的更新日 志,并将它们发送到从库。线程当前处于空闲状态,正在等待新 的更新数据的事件写入二进制日志中 |
|
Sending binlog event to slave |
线程已经从二进制日志中读取 了一个事件,现在将其发送到从库(二进制日志由事件组成,一 个事件通常是由发生更新的数据和一些其他信息组成) |
|
Waiting to finalize termination |
线程停止时发生的非常短暂 的状态,线程正在执行停止线程相关的动作 |
2.从库IO线程 State(Replication Slave I/O Thread States):
|
Checking master version |
在建立与主库的连接之后非常短暂 的状态,表示正在检查主库的版本号 |
|
Connecting to master |
线程尝试连接到主库 |
|
Queueing master event to the relay log |
线程已读取一个事 件,并将其复制到中继日志,以便 SQL 线程进行重放 |
|
Reconnecting after a failed binlog dump request |
线程正在 尝试重新连接到主库 |
|
Reconnecting after a failed master event read |
线程正在尝 试重新连接到主库,当重连连接成功时,状态将变为“Waiting for master to send event” |
|
Registering slave on master |
在连接到主库成功之后非常短暂 的状态,表示正在向主库注册从库的连接信息(如从库的 IP 和端 口信息等) |
|
Requesting binlog dump |
在与主库建立连接成功之后非常短 暂的状态,使用当前的 I/O 线程位置,向主库发送从当前位置开 始的二进制日志的内容的请求 |
|
Waiting for its turn to commit |
如果启用了 slave_preserve_commit_order 参数,则表示从库 I/O 线程正在 等待较旧的工作线程提交数据 |
|
Waiting for master to send event |
线程已经连接到主库并且 正在等待新的二进制日志事件,如果主库空闲,这可能持续很长 时间。如果等待时间持续超过 slave_net_timeout 秒,则从库 I/O 线程发生超时。此时,从库 I/O 线程认为主库的连接断开, 会尝试重新连接主库 |
|
Waiting for master update |
连接到主库之前的初始状态 |
|
Waiting for slave mutex on exit |
线程停止时短暂发生的状 态,表示正在回收 I/O 线程的相关互斥资源 |
|
Waiting for the slave SQL thread to free enough relay log space |
如果 relay_log_space_limit 变量设置值不为 0,那么当 中继日志总大小增长到超过此值时。 I/O 线程会等待,直到 SQL 线程通过重放中继日志内容并删除重放完成的中继日志以释放中 继日志占用的空间,使其满足中继日志中大小不大于 relay_log_space_limit 变量的值时,I/O 线程才可以继续写入中 继日志操作。 |
|
Waiting to reconnect after a failed binlog dump request |
如果二进制日志 dump 请求失败(由于断开连接),那么线程在 进入 sleep 状态,此时出现此状态,然后 I/O 线程定期尝试重新 连接主库。重试之间的间隔时间可以使用 CHANGE MASTER TO 语句的 MASTER_CONNECT_RETRY 选项指定 * 要注意,从库的 I/O 线程连接主库是有心跳机制的,当主库超 过这个心跳时间没有发送新的 event 到 slave 上时,I/O 线程就 对主库发起一个心跳请求,如果请求成功就重置心跳时间,当主 库有新的 event 发送到 slave 时,这个心跳时间也会进行重置。 心跳时间由 change master 语句的 MASTER_HEARTBEAT_PERIOD 选项设置(以秒为单位),范围 0 到 4294967 秒,分辨率(毫秒) 最小非零值为 0.001,表示 1 毫秒。将间隔设置为 0 时表示禁用心跳。 默认值是 slave_net_timeout 配置参数的二分之一。so,理论上是不会出 现主从数据库正常的情况下因为主库没有写数据而导致从库 I/O 线程断开的情况。 |
|
Waiting to reconnect after a failed master event read |
读取 主库 binlog 时发生错误(由于断开连接)。I/O 线程在尝试重新 连接主库之前,线程正在以 CHANGE MASTER TO 语句的 MASTER_CONNECT_RETRY 选项(默认为 60)设置的秒数进行 sleep(该时间是重连失败之后的重试间隔时间) |
3.从库SQL线程 State(Replication Slave SQL Thread States):
|
Killing slave |
线程正在处理 STOP SLAVE 语句 o Making temporary file (append) before replaying LOAD DATA INFILE:线程正在执行 LOAD DATA INFILE 语句,并将 从库将要读取的数据添加到临时文件中 |
|
Making temporary file (create) before replaying LOAD DATA INFILE |
线程正在执行 LOAD DATA INFILE 语句,且正 在创建临时文件,临时文件中包含了从库将要读取行数据。注 意:只有在 MySQL 5.0.3 之前的版本中,主库记录了原始 LOAD DATA INFILE 语句时,才能遇到此状态 |
|
Reading event from the relay log |
线程正在从中继日志中读 取事件,以便进行重放 |
|
Slave has read all relay log; waiting for more updates |
线程 已重做完所有的中继日志文件中的所有事件,正在等待 I/O 线程 向中继日志中写入新的事件 |
|
Waiting for an event from Coordinator |
从库使用多线程复制 时(slave_parallel_workers 大于 1),此状态表示一个 slave works 线程正在等待协调器线程(Coordinator 线程)分配日志 事件 |
|
Waiting for slave mutex on exit |
线程停止时发生的非常短暂 的状态 |
|
Waiting for Slave Workers to free pending events |
当 Workers 线程处理的事件的总数量大小超过 slave_pending_jobs_size_max 系统变量的大小时,会发生等待 操作(协调器线程不进行分配事件给 worker 线程)。当 Workers 线程处理的事件的总数量大小低于 slave_pending_jobs_size_max 限制时,协调器恢复调度。只有 当 slave_parallel_workers 设置为大于 0 时,此状态才会出现 |
|
Waiting for the next event in relay log |
“Reading event from the relay log”状态之前的初始状态 |
|
Waiting until MASTER_DELAY seconds after master executed event |
SQL 线程已读取事件,但并没有进行应用,而 是正在等待从库设置的延迟复制时间失效。此延迟时间使用 CHANGE MASTER TO 的 MASTER_DELAY 选项设置 |
4.从库连接线程 State(Replication Slave Connection Thread States):
|
Changing master |
线程正在处理 CHANGE MASTER TO 语句 |
|
Killing slave |
线程正在处理 STOP SLAVE 语句 |
|
Opening master dump table |
此状态发生在主库创建 dump 表之后 |
|
Reading master dump table data |
"Opening master dump table"状态之后出现的状态,表示正在从主库 dump 表读取数据 |
MySQL Replication Thread States的更多相关文章
- MySQL Replication需要注意的问题
MySQL Replication 大家都非常熟悉了,我也不会写怎么搭建以及复制的原理,网上相关文章非常多,大家可以自己去搜寻.我在这里就是想总结一下mysql主从复制需要注意的地方.有人说主从复制很 ...
- MySQL Replication 优化和技巧、常见故障解决方法
MySQL 主从同步错误(error)解决(转) sql_slave_skip_counter参数 附: 一些错误信息的处理,主从服务器上的命令,及状态信息. 在从服务器上使用show slave s ...
- 搭建mysql主从复制---Mysql Replication
主从复制原理 Mysql的Replication是一个异步的复制过程,从一个Mysql Instance(master)复制到另一个Mysql Instance(slave).中间需要三个线程slav ...
- MySQL Replication主从复制
MySQL Replication:NySQL复制,MySQL的复制默认为异步工作模式 mysql的复制功能是mysql内置的,装上它之后就具备了这个功能,而mysql复制是mysql实现大规模高 ...
- 浅析 MySQL Replication(本文转自网络,非本人所写)
作者:卢飞 来源:DoDBA(mysqlcode) 0.导读 本文几乎涵盖了MySQL Replication(主从复制)的大部分知识点,包括Replication原理.binlog format.复 ...
- General Thread States
对于实践中可能出现的各种General Thread States 以下列表描述了与常规查询处理关联的线程状态值,而不是更复杂的活动,例如复制. 其中许多仅用于在服务器中查找错误. after cre ...
- MySQL Replication 主从复制全方位解决方案
1.1 主从复制基础概念 在了解主从复制之前必须要了解的就是数据库的二进制日志(binlog),主从复制架构大多基于二进制日志进行,二进制日志相关信息参考:http://www.cnblogs.com ...
- 浅析 MySQL Replication(转)
目前很多公司中的生产环境中都使用了MySQL Replication ,也叫 MySQL 复制,搭建配置方便等很多特性让 MySQL Replication 的应用很广泛,我们曾经使用过一主拖20多个 ...
- 浅析 MySQL Replication(本文转自网络)
作者:卢飞 来源:DoDBA(mysqlcode) 0.导读 本文几乎涵盖了MySQL Replication(主从复制)的大部分知识点,包括Replication原理.binlog format.复 ...
随机推荐
- centos 8 sonarqube 设置开机自启动解决方案
编写开机自启动脚本 进入到开机自启动调用文件目录 vim /etc/systemd/system/sonarqube.service [Unit] Description=SonarQube serv ...
- Java Collecion的常用方法
import java.util.*; /** * 数组存储数据的特点: * ①一旦初始化,大小确定 * ②一旦定义,存储的类型确定且相同. * 数组存储的弊端: * ①大小无法改变. * ②方法较少 ...
- NameServer 核心原理解析
在之前的文章中,已经把 Broker.Producer 和 Conusmer 的部分源码和核心的机制介绍的差不多了,但是其实 RocketMQ 中还有一个比较关键但是我们平时很容易忽略的组件--Nam ...
- Mybatis学习(6)与Spring MVC 的集成
前面几篇文章已经讲到了mybatis与spring 的集成.但这个时候,所有的工程还不是web工程,虽然我一直是创建的web 工程.今天将直接用mybatis与Spring mvc 的方式集成起来,源 ...
- 容器化-Docker-1-速查手册-Docker常用命令
目录 备注 常用命令 Docker镜像管理(操作对象是镜像) Docker容器管理(操作对象是容器) 容器外挂目录(宿主目录映射到容器中) 这篇文章的目的就是把最常用的命令列出来,没时间看速查命令使用 ...
- 输出数组中出现次数最多且值最大的数字----python
class Solution(): #求最多的数 def find_max(self,list): num = 0 for i in list: print(i) if list.count(i) & ...
- 简单学习java内存马
看了雷石的内存马深入浅出,就心血来潮看了看,由于本人java贼菜就不介绍原理了,本文有关知识都贴链接吧 前置知识 本次主要看的是tomcat的内存马,所以前置知识有下列 1.tomcat结构,tomc ...
- Selenium启动Chrome浏览器提示“请停用以开发者模式运行的扩展程序”的解决办法
安装了python selenium,运行下面代码: 1 from selenium import webdriver 2 3 browser = webdriver.Chrome() 4 brows ...
- 个人博客开发之blog-api 项目整合JWT实现token登录认证
前言 现在前后端分离,基于session设计到跨越问题,而且session在多台服器之前同步问题,肯能会丢失,所以倾向于使用jwt作为token认证 json web token 导入java-jwt ...
- Java基础00-多线程28
1. 实现多线程 1.1 进程 1.2 线程 1.3 多线程的实现方式(方式一:继承Thread类) 代码示例:定义类MyThread: //1:定义一个类MyThread继承Thread类 publ ...