mysql mysqldump 备份锁表_MySQL xtrabackup/mydumper/mysqldump备份恢复及锁说明

本文详细介绍了MySQL备份工具如mysqldump、mydumper、xtrabackup在备份过程中的锁表策略,包括FLUSH TABLES WITH READ LOCK的影响以及如何处理长查询。--single-transaction选项用于实现无锁备份,但获取binlog位点可能需要短暂锁表。mydumper允许在长查询时终止查询,确保备份的顺利进行。建议在无长查询情况下进行备份,或在从库上执行备份以避免锁库问题。
摘要由CSDN通过智能技术生成

1.FLUSH TABLES WITH READ LOCK

大多数的备份软件在备份过程中都会执行FTWRL, 这个语句会获取一个全局读锁,从而保证数据处于一致的状态。

在大多数场景下,FTWRL获取读锁、unlock tables释放读锁的时间很短,所以通常热备份的锁在备份阶段是无感知的。

然而,FTWRL获取读锁时,需要找到一个所有的事务及查询都结束的时间点,如果获取读锁时mysql实例上有长事务或长查询,该语句将会被阻塞,FTWRL被阻塞反过来会阻塞数据库中后续的所有读写操作,甚至无法登录(因为登录时需要获取数据库中的表列表信息,除非使用-A选项),这种场景如下:

2063b7ec07def05d353b4c759cca33bc.png

所以在FTWRL方式的备份执行前,需要确保数据库中没有长查询,否则会锁库。mydumper有两个选项--long-query-guard和--kill-long-queries可以在存在长查询时kill掉

--long-query-guard Set long query timer in seconds, default 60

--kill-long-queries Kill long running queries (instead of aborting)

另外,Innodb的表在备份中实际上不需要FTWRL,但是如果需要获取binlog位点,则需要FTWRL

2.mysqldump

mysqldump备份中除了--lock-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值