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

来源:这里教程网 时间:2026-03-01 18:26:20 作者:

问题描述

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锁,不存在本案例中相同的问题。

建议

    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,则排除其他类型的语句。

问题复现

    客户端模拟慢查询语句

select sleep(1200),id from t2;

    执行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

相关推荐