MySQL 企业备份用户指南(版本 8.0.31)  / 第四部分附录  /  附录 F 备份进度表更新

附录 F 备份进度表更新

mysql.backup_progress表已通过以下方式随着 MySQL Enterprise Backup 8.0.19 的发布进行了更新:

  • 将存储引擎从 CSV 更改为 InnoDB

  • 添加了一个新的自增主键列 id

  • backup_id在和 current_timestamp列 上添加了复合索引

当 MySQL Enterprise Backup 8.0.19 或更高版本尝试对数据库执行第一次完整备份时,它会自动检查 mysql.backup_progress表的格式。如果它检测到表是旧格式(这意味着服务器已经从 8.0.18 或更早版本升级并且之前已经通过 MySQL Enterprise Backup 备份过),它会尝试自动对表执行格式更新以下步骤:

  1. 以新格式创建一个名为的表 ,并将原始 表中 mysql.backup_progress_new的数据复制到其中。mysql.backup_progress

  2. 将原mysql.backup_progress 表重命名为mysql.backup_progress_old,将 mysql.backup_progress_new表重命名为 mysql.backup_progress

  3. 对于 MySQL Enterprise Backup 8.0.21 及更高版本:删除 mysql.backup_progress_old表。

为了成功迁移到新的表格式,在从 8.0.18 或更早版本升级并已由 MySQL Enterprise Backup 8.0.19 或更高版本首次执行第一个备份任务之前MySQL Enterprise Backup 之前,通过在mysqlmysqlbackup客户端发出这些语句来授予服务器上用户所需的权限:

GRANT ALTER ON mysql.backup_progress TO 'mysqlbackup'@'localhost';
GRANT CREATE, INSERT, DROP ON mysql.backup_progress_old TO 'mysqlbackup'@'localhost';
GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_progress_new TO 'mysqlbackup'@'localhost';

如果未授予这些权限,表升级将失败并显示类似于以下内容的错误消息:

191219 20:48:43 MAIN   ERROR: MySQL query 'RENAME table mysql.backup_progress TO mysql.backup_progress_old, 
mysql.backup_progress_new TO mysql.backup_progress': 1142, ALTER command denied to user 'mysqlbackup'@'localhost' 
for table 'backup_progress'

在 MySQL Enterprise Backup 8.0.19 或更高版本执行第一次完整备份后,不再需要这些权限,此时可以撤销这些权限。

笔记

如果您正在使用多主组复制设置,请确保在所有主节点上授予这些权限;另请参阅第 9 章,将 MySQL Enterprise Backup 与 Group Replication 结合使用