关于mysql8:新特性解读-备份锁

39次阅读

共计 776 个字符,预计需要花费 2 分钟才能阅读完成。

作者:姚远
专一于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6,5.7,8.0 OCP。当初鼎甲科技任参谋,为共事和客户进步数据库培训和技术支持服务。
本文起源:原创投稿
* 爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。


MySQL8.x 中新增了一个轻量级的备份锁,它容许在 online 备份的时候进行 DML 操作,同时可避免快照不统一。这个锁禁止的操作很少,它禁止的操作包含:

  • 文件的创立、删除、改名
  • 账户的治理
  • REPAIR TABLE
  • TRUNCATE TABLE
  • OPTIMIZE TABLE

备份锁由 lock instance for backup 和 unlock instance 语法组成。应用这些语句须要 BACKUP_ADMIN 权限。

从图外面看长查问对 FTWRL(flush tables with read lock)是有影响的,整个零碎会 hung 住,此时其它的数据库查问也不能用,包含 use database。

能够看到大家都在等这个锁开释。而 lock instance for backup 则没有这个问题。Oracle 本人的备份产品(MySQL Enterprise Backup 8)就用这个锁,Percona 的 Xtrabackup 在 8 的版本也是用这个锁。

顺便提一下,Percona 本人的 MySQL 也有一种轻量级的备份锁“LOCK TABLES FOR BACKUP”也是一种比 FTWRL 要轻量级的锁。它不会刷新表,即存储引擎不会强制敞开表,并且表不会从表缓存中排出。因而,LOCK TABLES FOR BACKUP 仅期待抵触的语句实现,它不会期待 SELECT 或更新 InnoDB 表来实现。

参考:
https://dev.mysql.com/doc/ref…
https://www.percona.com/doc/p…

正文完
 0