ITPub博客

首页 > 数据库 > MySQL > Xtrabackup 2.4.18:Unable to obtain lock. Please try again later.

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

原创 MySQL 作者:张冲andy 时间:2024-08-02 08:28:51 0 删除 编辑

问题描述

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31383567/viewspace-3023987/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: nginx 限流配置
请登录后发表评论 登录
全部评论
支持就关注我个人公众号:DBA烂笔头 。专注数据库领域,熟悉oracle、mysql、redis、mongodb,clickhouse等相关技术

注册时间:2016-08-11

  • 博文量
    626
  • 访问量
    286315