附录E SBT备份历史表更新

mysql.backup_sbt_history随着MySQL Enterprise Backup 8.0.21版本的发布,表以以下方式进行了更新:

  • 存储引擎由CSV修改为InnoDB

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

当MySQL Enterprise Backup 8.0.21或更高版本尝试使用SBT API对数据库执行第一次完全备份时(请参阅第11.1节,“使用Oracle安全备份备份到磁带”的格式),会自动检查mysql.backup_sbt_history表格如果它检测到表是旧格式的(这意味着服务器已经从8.0.20或更早版本升级,并且在使用SBT API之前已经由MySQL Enterprise Backup备份),它会尝试按照以下步骤自动对表执行更新:

  1. 在新格式中创建一个名为mysql.backup_sbt_history_new并将原始数据复制到其中mysql.backup_sbt_history表格

  2. 重命名原来的mysql.backup_sbt_historymysql.backup_sbt_history_old,以及mysql.backup_sbt_history_newmysql.backup_sbt_history

  3. mysql.backup_history_old表格

为了成功迁移到新的表格式,在使用MySQL Enterprise backup 8.0.21或更高版本的SBT API在从8.0.20或更早版本升级的MySQL服务器上执行第一次备份任务之前,在使用SBT API之前已经通过MySQL Enterprise backup备份过的MySQL服务器上,授予所需的权限mysqlbackup用户在服务器上发出这些语句mysql客户端:

格兰特ALTER关于mysql。backup_sbt_history到mysqlbackup @ localhost;授权创建,插入,删除mysql。backup_sbt_history_old TO 'mysqlbackup'@'localhost';授权创建,插入,删除,修改mysql。backup_sbt_history_new到mysqlbackup @ localhost;

如果没有授予这些特权,则使用SBT API在升级后的服务器上进行的第一次完全备份将失败,并出现类似以下的错误消息:

200612 08:40:45主要错误:MySQL查询'DROP TABLE IF EXISTS MySQL。backup_sbt_history_old': 1142, DROP命令拒绝用户'mysqlbackup'@'localhost'表'backup_sbt_history_old' mysqlbackup失败与错误!

在MySQL Enterprise backup 8.0.21或更高版本执行了第一次使用SBT API的完全备份之后,这些特权就不再需要了,到那时它们就可以被撤销了。

请注意

如果您正在使用多主组复制设置,请确保在所有主节点上授予这些特权;另请参阅第9章,使用MySQL企业备份与组复制