mysql slave 'system user' locked_Mysql的slave lags一例
现网一个产品报警主从延时,到备机上检查,果然延时(Seconds_Behind_Master)越来越严重,但是Relay_Log_pos值也是慢慢变大的,说明备机在跟主机数据,但跟得比较慢,特别是有System Lock。分析一下。
一、检查
mysql> show processlist;
+-------+-------------+--------------------+------+-------------+--------+-----------------------------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-------+-------------+--------------------+------+-------------+--------+-----------------------------------------------------------------------------+------------------+
| 1 | system user | | NULL | Connect | 171318 | Waiting for master to send event | NULL |
| 2 | system user | | NULL | Connect | 312206 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL |
| 3 | system user | | NULL | Connect | 306 | Waiting for an event from Coordinator | NULL |
| 4 | system user | | NULL | Connect | 10587 | System Lock | NULL |
| 5 | system user | | NULL | Connect | 126 | Waiting for an event from Coordinator | NULL |
| 6 | system user | | NULL | Connect | 0 | Waiting for an event from Coordinator | NULL |
| 13 | repl | 192.168.17.59:61674 | NULL | Binlog Dump | 171281 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL |
| 74870 | root | localhost | NULL | Query | 0 | init | show processlist |
+-------+-------------+--------------------+------+-------------+--------+-----------------------------------------------------------------------------+------------------+
9 rows in set (0.00 sec)
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Log_File: mysql-bin.000057
Read_Master_Log_Pos: 792576413
Relay_Log_File: relay-bin.000170
Relay_Log_Pos: 381505193
Relay_Master_Log_File: mysql-bin.000057
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Exec_Master_Log_Pos: 792576413
Relay_Log_Space: 561858267
Until_Condition: None
Seconds_Behind_Master: 10627
Master_UUID: 41690a50-296b-11e6-a0f1-525400fd6bba
Master_Info_File: /data/mysql/datanode1/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: System Lock
Master_Retry_Count: 86400
1 row in set (0.00 sec)
二、定位
[root@db02 datanode1]# mysqlbinlog --no-defaults -v relay-bin.000170 --start-position=381505193 --base64-output=decode-rows |more
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 381505193
#161124 14:29:29 server id 53 end_log_pos 796951500 CRC32 0x490aa291 Querythread_id=96281495exec_time=0error_code=0
SET TIMESTAMP=1479968969/*!*/;
SET @@session.pseudo_thread_id=96281495/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=3, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
# at 381507211
#161124 14:29:29 server id 53 end_log_pos 796953659 CRC32 0x9c5e6005 Update_rows: table id 11108 flags: STMT_END_F
### UPDATE `db_test`.`tbl_user_log`
### WHERE
### @1=228856
### @2='test_mobi'
### @3='2346150430'
### @4='2016-06-02 14:34:25'
### @5='2016-11-24 14:23:34'
### @6=NULL
### @7=0
### @8=0
### @9=2709
### @10='1.1.1'
### @11='client'
### @12=NULL
### @13='2016-06-24 21:45:22'
### @14=282
### @15='userinfo_sys'
### SET
### @1=228856
### @2='test_mobi'
### @3='2346150430'
### @4='2016-06-02 14:34:25'
### @5='2016-11-24 14:29:29'
### @6=NULL
### @7=0
### @8=0
### @9=2710
### @10='1.1.1'
### @11='client'
### @12=NULL
### @13='2016-06-24 21:45:22'
### @14=282
### @15='userinfo_sys'
# at 381507429
#161124 14:29:29 server id 53 end_log_pos 796953690 CRC32 0x7eec6df7 Xid = 2585781884
COMMIT/*!*/;
三、查看打开的表
mysql> show open tables;
Database Table In_use Name_locked
| db_test | tbl_1 | 0 | 0 |
| db_test | tbl_user_log | 1 | 0 |
| db_test | tbl_2 | 0 | 0 |
3 rows in set (0.00 sec)
四、分析排查
基本可以定位是这个大批量的update导致的备机延时。这个tbl_user_log表是建了Btree索引的,索引的数据也是比较均匀分散的,但是上面没有主键或者唯一索引。该表有300多万数据,通过观察,slave上的update在relay回放时是很慢的,索引并没起作用,类似全表扫描。遂在该表上建立主键,如果备机延时比较久了,可以通过忽略记录binglog的方式在主备上加个主键操作。
主机上:
set session sql_log_bin=0;
alter table tbl_user_log add primary key(id);
set session sql_log_bin=1;
备机上:
set session sql_log_bin=0;
alter table tbl_user_log add primary key(id);
set session sql_log_bin=1;
五、注意总结
通过对该表添加主键的方式后,备机过了几分钟就把落后几个小时的数据给追回来了。后续对上线的表要做好审计,mysql的innodb表一定得要有主键,设置sql_log_bin时不要加global参数。
mysql slave 'system user' locked_Mysql的slave lags一例相关推荐
- mysql slave是什么_创建slave的搜索结果-阿里云开发者社区
Rainbond部署Mysql主从集群应用说明 Mysql主从同步原理 1)在Slave 服务器上执行sart slave命令开启主从复制开关,开始进行主从复制. 2)此时,Slave服务器的IO线程 ...
- mysql配置master_mysql 主从配置(master/slave)
1. 在每台服务器上创建复制账号(也可以只在master上创建用户,这里配置两个是为了方便以后切换) 备库运行的I/O县城需要建立一个到主库的TCP/IP连接,所以必须在主库创建一个用户,并赋予合适 ...
- mysql 查看slave状态_解读show slave status 命令判断MySQL复制同步状态
解读show slave status 命令判断MySQL复制同步状态 1. show slave status命令可以显示主从同步的状态 MySQL> show slave status \G ...
- mysql slave_pending_jobs_size_max_MySQL:关于Wating for Slave workers to free pending events等待...
###一.问题来源 这是一位朋友给我的一个截图,说show slave status一直处于Wating for Slave workers to free pending events状态,这个库是 ...
- system+执行mysql命令_Windows环境下通过MySQL以SYSTEM身份执行系统命令 -电脑资料
前段时间出了两个关于MySQL的漏洞<MySQL CREATE FUNCTION功能mysql.func表允许注入任意函数库漏洞>.<MySQL CREATE FUNCTION功能l ...
- MySQL服务中断后重启失败及解决办法(个例)
转载请标明出处^_^ 原文首发于:https://www.zhangruibin.com 本文出自于:RebornChang的博客 MySQL服务中断后重启失败及解决办法(个例) Starting M ...
- 使用MySQL进行数据分析——以淘宝用户数据为例
使用MySQL进行数据分析--以淘宝用户数据为例 1. 背景介绍 本文主要是练习使用 mysql 进行数据分析,结合 excel 进行可视化分析,数据来源为阿里云天池的淘宝用户数据集,本数据集(Use ...
- 从Mysql slave system lock延迟说开去
本文主要分析 sql thread中system lock出现的原因,但是笔者并明没有系统的学习过master-slave的代码,这也是2018年的一个目标,2018年我都排满了,悲剧.所以如果有错误 ...
- Linux下基于 Docker 搭建 MySQL 主从复制(1 Master+2 Slave)
1.准备环境 CentOS 7.2 64位 (CentOS-7-x86_64-DVD-1511.iso) MySQL 10.244.87.144/library/mysql5.7/centos ...
最新文章
- python replace函数_Python3 replace()函数使用方法
- 什么是java多线程_什么是java多线程,java多线程的基本原理?
- 第十六届全国大学生智能车东北赛区线上比赛时间与直播信息
- Angular2.0 基础: User Input
- 如何判断对象是否存活之根搜索算法
- P1971 [NOI2011]兔兔与蛋蛋游戏
- 批量添加PDF帐号目录
- 高合HiPhi Z,参透豪华电动车的终极奥义?
- android 物联网 pdf,android复习资料(物联网141).pdf
- Redis基础知识详解(非原创)
- Python代码自动转成C++代码
- 铁通玩跑跑卡丁车经常出现服务器无响应之解决办法
- ptt评论量子计算机,PTT网友热议Nuguri替补:打野下路状态都拉跨不换,先换上路??...
- 《千字文》 梁•周兴嗣
- 【Linux】【操作】Linux操作集锦系列之一——定时任务
- codeforces 869 E. The Untended Antiquity(树状数组)
- python_操作MySQL 初解 之__类方法调用并 增-删-改-查
- 101. Symmetric Tree (C语言)
- 记录一次租房经历一(1)
- 【Android】BoardcastReceiver简介