该mysql.backup_sbt_history
表已通过以下方式随着 MySQL Enterprise Backup 8.0.21 的发布进行了更新:
将存储引擎从 CSV 更改为 InnoDB
添加了一个新的自增主键列
id
当 MySQL Enterprise Backup 8.0.21 或更高版本尝试使用 SBT API 在数据库上执行其第一次完整备份时(有关详细信息,请参阅第 11.1 节,“使用 Oracle Secure Backup 备份到磁带”
),它会自动检查
mysql.backup_sbt_history
表的格式. 如果它检测到表是旧格式(这意味着服务器已经从 8.0.20 或更早版本升级并且在使用 SBT API 之前已经由 MySQL Enterprise Backup 备份),它会尝试对表执行更新自动执行以下步骤:
以新格式创建一个名为的表 ,并将原始表中
mysql.backup_sbt_history_new
的数据复制到其中 。mysql.backup_sbt_history
将原
mysql.backup_sbt_history
表重命名为mysql.backup_sbt_history_old
,将mysql.backup_sbt_history_new
表重命名为mysql.backup_sbt_history
。放下
mysql.backup_history_old
桌子。
为了成功迁移到新的表格式,在使用 SBT API 和 MySQL Enterprise Backup 8.0.21 或更高版本在已从 8.0.20 或更早版本升级并已由MySQL Enterprise Backup 在使用 SBT API 之前,通过在mysqlmysqlbackup
客户端
发出这些语句来向服务器上
的用户授予所需的权限:
GRANT ALTER ON mysql.backup_sbt_history TO 'mysqlbackup'@'localhost';
GRANT CREATE, INSERT, DROP ON mysql.backup_sbt_history_old TO 'mysqlbackup'@'localhost';
GRANT CREATE, INSERT, DROP, ALTER ON mysql.backup_sbt_history_new TO 'mysqlbackup'@'localhost';
如果未授予这些权限,则使用 SBT API 在升级后的服务器上进行的第一次完整备份将失败,并显示类似于以下内容的错误消息:
200612 08:40:45 MAIN ERROR: MySQL query 'DROP TABLE IF EXISTS mysql.backup_sbt_history_old': 1142, DROP command denied to user 'mysqlbackup'@'localhost' for table 'backup_sbt_history_old'
mysqlbackup failed with errors!
在 MySQL Enterprise Backup 8.0.21 或更高版本执行了第一次使用 SBT API 的完整备份后,不再需要这些权限,到那时它们可以被撤销。
如果您正在使用多主组复制设置,请确保在所有主节点上授予这些权限;另请参阅第 9 章,将 MySQL Enterprise Backup 与 Group Replication 结合使用。