GreatSQL社区

搜索

chongzh

Xtrabackup 2.4.18:Unable to obtain lock. Please try again later.

chongzh 已有 523 次阅读2024-8-2 08:26 |个人分类:Mysql 原理|系统分类:运维实战

问题描述

Xtrabackup 2.4.18 备份报错:Unable to obtain lock. Please try again later.

环境信息

Xtrabackup 2.4.18

MySQL 5.7.21

问题总结

备份语句指定--ftwrl-wait-timeout=60,备份期间有select语句执行耗时超过60秒,FTWRL等待锁时间大于ftwrl-wait-timeout设置的时间,则获取FTWRL锁超时,不继续备份,打印日志

Unable to obtain lock. Please try again later.

说明:Xtrabackup percona-xtrabackup-80-8.0.x  没有myisam表的情况会使用备份锁不需要FTWRL锁,不存在本案例中相同的问题。

建议

  1. Xtrabackup 2.4.18 如果备份成优先等级高于慢SQL,即慢SQL允许被kill, 添加参数 --kill-long-queries-timeout=50 --kill-long-query-type=all

 --kill-long-queries-timeout=50
     xtrabackup在执行 FLUSH TABLES WITH READ LOCK 被阻塞时,等待指定秒数后进行kill阻塞源query
     主要目的就是要保证FLUSH TABLES WITH READ LOCK能够执行成功,所以xtrabackup用户需要process和super权限
 --kill-long-query-type=all
     什么类型的query会被kill掉,配合上面的参数一起使用。
     ALL,就是包含了DDL/DML/SELECT等语句都计入长查询判定的范畴。可以设置为SELECT,则排除其他类型的语句。

问题复现

  1. 客户端模拟慢查询语句

select sleep(1200),id from t2;

  1. 执行xtrabackup备份

/usr/bin/xtrabackup --socket=/opt/mysql3307/mysql.sock  --user=root --password="xxx" --lock-wait-threshold=40 --lock-wait-query-type=all --lock-wait-timeout=180  --lock-ddl-timeout=60  --ftwrl-wait-timeout=60  --compress --compress-threads=8 --backup --stream=xbstream  --target-dir=/nfs/mysqlback/172.17.134.50/3307 1>dt.xb 2>/nfs/mysqlback/172.17.134.50/3307/dt.log

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-12-21 21:44 , Processed in 0.016000 second(s), 10 queries , Redis On.
返回顶部