GreatSQL。
用xtrabackup备份全实例时会造成锁等待吗?若使用mysqldump备份呢?在本期的《用三分钟学会一个MySQL知识》中,我们将为大家解答问题:xtrabackup和mysqldump是否会造成锁等待?以及在备份大表时,我们应该选择哪一个工具?
1.trabackup和mysqldump会造成锁等待吗?
答:使用xtrabackup备份全实例时会短暂地产生全局读锁FTWL(flush table with read lock),用于拷贝frm、MYD、MYI等文件以及记录binlog信息。如果MyISAM表的数据量非常大,那么拷贝时间和加锁的时间都会更长。
使用mysqldump备份时,如果使用了--master-data选项,那么也会短暂地加锁。但通常情况下,为了让备份文件和binlog保持一致,我们会设置--master-data选项以获得当前binlog信息。这种情况下,也会短暂地加锁。
数据量特别大时,建议使用xtrabackup来提高备份和恢复速度。如果只需要备份单表,则建议使用mysqldump,因为它更方便进行逻辑恢复。需要注意的是,选择哪种工具应该根据具体情况而定。
2.xtrabackup的冷知识:
答:基于MySQL5.6版本开发的xtrabackup会在备份过程中生成内部通信文件suspend file,用于xtrabackup和innobackupex的通信。备份结束后,文件会自动删除,默认位置是/tmp/xtrabackup_suspended。
如果在备份过程中修改了/tmp的访问权限或该文件的权限,那么两个程序之间就不能正常通信,会造成xtrabackuphang住。如果正在备份的表无法正常释放锁,也会导致锁等待,此时需要强制kill掉xtrabackup进程。
以上就是本期视频的主要内容,感谢大家的观看。
本文暂时没有评论,来添加一个吧(●'◡'●)