MySQL备份,使用xtrabackup备份全实例数据时,会造成锁等待吗?那么如果使用mysqldump进行备份呢?

摘要:
在备份期间,它将生成一个临时全局读锁FTWL(可与读锁一起刷新)。如果仅添加--single transaction选项以确保备份数据的一致性,则通常设置--master data选项以获取当前的binlog信息。在这种情况下,临时锁还将生成大量数据。如果数据量不太大或您想备份单个表,则在备份过程中将生成一个内部通信文件suspendfile,即备份后删除文件。

一、xtrabackup和mysqldump会造成锁等待吗?

  1. xtrabackup会,它在备份时会产生短暂的全局读锁FTWL(flush table with read lock),用于拷贝frm/MYD/MYI等文件,以及记录binlog信息。如果MyISAM表的数据量非常大,则拷贝时间就越长,加锁的时间也越长

  2. mysqldump有可能会。如果只是添加 --single-transacton 选项用于保证备份数据一致性,这时就不会产生FTWL锁了。但通常我们为了让备份文件和binlog保持一致,通常也会设置 --master-data 选项用于获得当前binlog信息,这种情况也会短暂加锁

  3. 数据量特别大的话,建议优先用 xtrabackup,提高备份/恢复速度。而如果数据量不是太大或者想备份单表,则建议用mysqldump了,方便逻辑恢复。各有利弊,注意其适用场景

二、xtrabackup冷知识

  1. 基于MySQL 5.6版本开发的xtrabackup,会在备份过程中生成内部通信文件 suspend file,用于 xtrabackup 和 innobackupex 的通信,备份结束后文件删除,默认文件位置 /tmp/xtrabackup_suspended

  2. 如果在备份过程中,修改了 /tmp 的访问权限或该文件的权限,则两个程序间直接不能通信,会造成 xtrabackup hang 住,正在备份的表不能正常释放锁,会造成锁等待,此时需要强制 kill 掉 xtrabackup 进程

免责声明:文章转载自《MySQL备份,使用xtrabackup备份全实例数据时,会造成锁等待吗?那么如果使用mysqldump进行备份呢?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇navigator浏览器信息微信浏览器input常见问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker-compose 搭建 kafka 集群

环境准备 kafka依赖zookeeper,所以搭建kafka需要先配置zookeeper。网格信息如下: zookeeper 192.168.56.101:2181 kafka1 192.168.56.101:9092 kafka2 192.168.56.101:9093 kafka3 192.168.56.101:9094 开始搭建...

git 学习删除某次提交

cmd里的快捷键 ctrl+a : 跳到开头 ctrl+e : 跳到结尾 which vi 查看vi这么命令在哪个目录下 >> /uer/bin/vi git log 太多了看不完, 空格 往下看 q退出 ctrl+f往后走, ctrl+d 往前走 mkdir a && cd - 创建并进入啊目录 vim下 :...

前端 WebUploader 分块上传

这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 public class FileInf {      public File...

JAVA文件名命名规范

JAVA语言,有严格的大小写区分要示。 JAVA源文件名必须符合以下规则: 1、必须以.java结尾。这样才能被编辑器javac.exe所编辑。 2、源文件中如果只有一个类,文件名必须与该类名相同。 3、如果有多个类,且没有public类,文件名可与任一类名相同。 4、有多个类,且有public类,文件名必须与该类名相同。 注:一个JAVA源文件只能有一个...

eclipse,sts怎么把多个微服务或者多个项目备份到码云的同一个仓库下进行管理

观前提示 第一部分:提交方法 第二部分:可能出现的错误和解决方法 第三部分:自己的尝试过程 -----------------------------------------------------------第一部分-------------------------------------------------------- 前提:无法在eclipse...

使用阿里云服务器写shell脚本发送qq邮件的三个形式

【准备工作】 IPtables的使用如下命令:(执行以下以下命令把25和465端口打开) iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 465 -j...