xtrabackup出现‘FLUSH NO_WRITE_TO_BINLOG TABLES‘: 1205 (HY000) Lock wait timeout exceeded;

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 现象xtrabackup备份MySQL数据库出现超时的错误

现象

xtrabackup备份MySQL数据库出现超时的错误:


Error: failed to execute query 'FLUSH NO_WRITE_TO_BINLOG TABLES': 1205 (HY000) Lock wait timeout exceeded; try restarting transaction
...
Error: failed to execute query 'FLUSH NO_WRITE_TO_BINLOG TABLES': 1205 (HY000) Lock wait timeout exceeded; try restarting transaction


解决方法

解决方法有两个,一个是修改xtrabackup的参数,另一个是杀死长时间执行的线程。


杀死长SQL的线程:

查询执行时间长的线程:

mysql> select * from processlist where command not like 'Sleep' order by time desc limit 3;
+-----+-----------------+-----------+--------+---------+--------+-------------------------+-----------------------------------------------+
| ID  | USER            | HOST      | DB     | COMMAND | TIME   | STATE                   | INFO                                          |
+-----+-----------------+-----------+--------+---------+--------+-------------------------+-----------------------------------------------+
|   5 | event_scheduler | localhost | NULL   | Daemon  | 432662 | Waiting on empty queue  | NULL                                          |
| 132 | root            | localhost | sakila | Query   |    632 | User sleep              | select * from actor where actor_id=sleep(100) |
| 131 | root            | localhost | NULL   | Query   |    628 | Waiting for table flush | flush table with read lock                    |
+-----+-----------------+-----------+--------+---------+--------+-------------------------+-----------------------------------------------+
3 rows in set (0.00 sec)
mysql> 
mysql> kill 132;
Query OK, 0 rows affected (0.00 sec)


也可以在sys.processlist、INFORMATION_SCHEMA.PROCESSLIST或者performance_schema.threads里面找到长时间执行的SQL,把它们杀死即可。


修改xtrabackup的参数

对于执行时间长的SQL,还可以通过修改相关参数来解决:


使用–ftwrl-wait-*系列参数,意思是备执行FLUSH TABLES WITH READ LOCK时遇到等待长SQL语句执行时等待设置时间,超时还没有执行完,备份退出宣布失败。

使用–kill-long-query-*系列参数,意思是遇到等待长SQL语句执行时,超时就是kill掉执行的SQL语句,并且可以设置SQL类型默认全部。

使用–safe-slave-backup-*系列参数,意思是在从库备份,备份开始先停止slave sql线程,防止有超长SQL语句执行,备份完再启动slave sql线程。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
关系型数据库 MySQL 数据库
MySQL报错:Lock wait timeout exceeded; try restarting transaction
MySQL报错:Lock wait timeout exceeded; try restarting transaction
|
5月前
|
SQL 关系型数据库 MySQL
MySQL报错:1205 Lock wait timeout exceeded; try restarting transaction处理
MySQL报错:1205 Lock wait timeout exceeded; try restarting transaction处理
|
9月前
|
SQL 关系型数据库 MySQL
Mysql 异常:Lock wait timeout exceeded; try restarting transaction的解决办法
Mysql 异常:Lock wait timeout exceeded; try restarting transaction的解决办法
103 0
|
9月前
|
SQL 关系型数据库 MySQL
mysql Lock wait timeout exceeded; try restarting transaction解决方案
在测试程序时,打的断点怎么都跳不进去,console一直报 “Lock wait timeout exceeded; try restarting transaction”
109 0
|
关系型数据库 MySQL 数据库
MySQL - Lock wait timeout exceeded; try restarting transaction
MySQL - Lock wait timeout exceeded; try restarting transaction
348 0
MySQL - Lock wait timeout exceeded; try restarting transaction
|
关系型数据库 MySQL
[Err] 1205 - Lock wait timeout exceeded; try restarting transaction Mysql 报错
Mysql 报错: [Err] 1205 - Lock wait timeout exceeded; try restarting transaction
326 0
|
存储 缓存 数据处理
完全揭秘log file sync等待事件
什么是log file sync等待事件呢?在一个提交(commit)十分频繁的数据库中,一般会出现log file sync等待事件,当这个等待事件出现在top5中,这个时侯我们需要针对log file sync等待事件进行优化,一定要尽快分析并解决问题,否则当log file sync等待时间从几毫秒直接到20几毫秒可能导致系统性能急剧下降,甚至会导致短暂的挂起。
完全揭秘log file sync等待事件
|
关系型数据库 MySQL
0322理解db file parallel read等待事件2
[20180322]理解db file parallel read等待事件2.txt --//上个星期的学习:http://blog.itpub.net/267265/viewspace-2151973/ https://docs.
1127 0
|
关系型数据库 Oracle Linux
0316理解db file parallel read等待事件
[20180316]理解db file parallel read等待事件.txt --//一直对db file parallel read等待事件不理解,因为在实际系统中很少遇到这样的等待事件.
1178 0