You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Percona Server 8.0残留TokuDB临时表致迁移失败的解决咨询

解决隐藏TokuDB临时表迁移报错的方案

方案1:在源实例彻底清理残留TokuDB元数据

  • 临时重新启用TokuDB插件(源实例可操作前提下):
    INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
    
    若源实例已卸载插件文件,需从同版本Percona Server安装包中提取ha_tokudb.so放到插件目录,再执行安装。
  • 排查关联TokuDB的残留对象,包括临时表元数据:
    SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE = 'TokuDB';
    SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE '%#sql%';
    
  • 手动清理目标临时表的元数据记录:
    DELETE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME = 'plp/#sql-e70b_1135191d';
    
    操作前务必备份INFORMATION_SCHEMA相关表,避免误删。
  • 再次禁用TokuDB插件:
    UNINSTALL PLUGIN tokudb;
    
  • 用Percona XtraBackup重新备份源库,再恢复到新实例。

方案2:在新实例跳过TokuDB引擎检查启动

  • 修改新实例的my.cnf配置:
    default-storage-engine=InnoDB
    disabled_storage_engines="TokuDB"
    loose-tokudb=OFF
    innodb_force_recovery=1
    
    注:innodb_force_recovery=1为只读修复模式,恢复后需移除该参数。
  • 启动实例后删除残留临时表元数据:
    DELETE FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE '%#sql%' AND NAME LIKE '%tokudb%';
    
  • 关闭实例,移除innodb_force_recovery参数,重启后验证服务状态。

方案3:用Percona XtraBackup过滤备份

  • 备份源库时排除TokuDB相关对象及目标临时表:
    xtrabackup --backup --target-dir=/backup --exclude-table=plp.#sql-e70b_1135191d --exclude-engine=tokudb
    
  • 准备备份:
    xtrabackup --prepare --target-dir=/backup
    
  • 将备份恢复到新实例,启动服务验证。

内容的提问来源于stack exchange,提问作者Maxim Demkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:17:03