MySQL 企业备份 (MEB-MySQL Enterprise Backup):在进行备份时锁定表?

MySQL 8.0.11 支持用于备份的锁实例,但 MySQL Enterprise Backup (MEB) 不支持仍然使用 FTWRL (FLUSH TABLES WITH READ LOCK)。
MySQL Enterprise Backup 8.0.16 中添加了对避免对 InnoDB 表使用 FLUSH TABLES WITH READ LOCK 的支持。

在 8.0.16 之前,MySQL Enterprise Backup 分几个步骤执行备份:

  • 首先复制 InnoDB 数据。
  • FLUSH TABLES WITH READ LOCK 被执行。
  • 复制所有其他文件并执行其他需要锁定的任务。另见下文。
  • 锁被释放。

MySQL Server 8.0 引入了对用于备份的专用锁的支持:

“备份锁。
一种新型备份锁允许在线备份期间进行 DML,同时防止可能导致不一致快照的操作。
新备份锁由 LOCK INSTANCE FOR BACKUP 和 UNLOCK INSTANCE 语法支持。
使用 BACKUP_ADMIN 权限需要这些声明.”

但是,目前 MySQL Enterprise Backup 不支持这种新锁。

www. On IT Road .com

避免锁定在早期版本中

可以避免锁定表。
要启用此功能,我们必须指定 -no-locking 选项,该选项在复制非 InnoDB 文件时禁用锁定。
该选项也可以在配置文件中指定:

[mysqlbackup]
no-locking

禁用锁定时,从第一阶段更改为第二阶段时的输出如下所示:

...
mysqlbackup: INFO: Opening backup source directory '/var/lib/mysql/'
111124 10:20:44 mysqlbackup: INFO: Starting to backup all files in subdirectories of '/var/lib/mysql/'
...
日期:2020-09-17 00:11:11 来源:oir作者:oir