请选择 进入手机版 | 继续访问电脑版

爱分享吧

 找回密码
 立即注册11
搜索
热搜: 活动 交友 discuz
查看: 1653|回复: 0

今日讨论: MySQL备份,使用xtrabackup备份全实例数据时,会造...

[复制链接]

75

主题

75

帖子

1298

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1298
发表于 2018-6-14 10:32:52 | 显示全部楼层 |阅读模式



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

一、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了,方便逻辑恢复。各有利弊,注意其适用场景。

二、扩展冷知识
基于MySQL 5.6版本开发的xtrabackup,会在备份过程中生成内部通信文件 suspend file,用于 xtrabackup 和 innobackupex 的通信,备份结束后文件删除,默认文件位置 /tmp/xtrabackup_suspended。
如果在备份过程中,修改了 /tmp 的访问权限或该文件的权限,则两个程序间直接不能通信,会造成 xtrabackup hang 住,正在备份的表不能正常释放锁,会造成锁等待,此时需要强制 kill 掉 xtrabackup 进程。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册11

本版积分规则

Archiver|手机版|小黑屋|爱分享吧

GMT+8, 2022-1-26 21:54 , Processed in 0.054981 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表