InnoDB执行OPTIMIZE TABLE报错66:Object is remote问题咨询
关于InnoDB错误66 "Object is remote"的解析
问题背景
表信息
Name awesome_tbl Engine InnoDB Version 10 Row_format Compact Rows 464 Avg_row_length 739469 Data_length 343113728 Max_data_length 0 Index_length 32768 Data_free 8388608 Auto_increment 618 Create_time 2020-09-02 13:34:37 Update_time NULL Check_time NULL Collation cp1250_general_ci MariaDB Version: 10.0.35-MariaDB innodb_version: 5.6.39-83.1
执行操作及报错
执行命令:
OPTIMIZE TABLE awesome_tbl;
返回报错信息:
Table test.awesome_tbl Op optimize Msg_type note Msg_text Table does not support optimize, doing recreate + analyze instead Table test.awesome_tbl Op optimize Msg_type error Msg_text Got error 66 "Object is remote" from storage engine InnoDB Table test.awesome_tbl Op optimize Msg_type status Msg_text Operation failed
错误解析
错误含义
错误66 "Object is remote"是InnoDB的内部错误码,说明当前操作的表awesome_tbl并非本地存储的标准InnoDB表,而是被引擎识别为远程对象。
可能的原因
- FederatedX远程表映射:该表可能是通过MariaDB的FederatedX引擎创建的远程映射表,本地仅保存表结构定义,实际数据存储在远端数据库服务器。
OPTIMIZE TABLE需要直接操作本地表空间文件,远程映射表无法支持这类底层操作。 - 远程存储介质存放表文件:表的ibd数据文件存放在网络挂载磁盘、云存储卷等远程存储设备上,InnoDB无法将其识别为本地存储对象,因此拒绝执行需要修改物理文件的OPTIMIZE操作。
- 特殊存储插件/定制配置:使用了第三方存储插件或定制化的存储方案,导致表被标记为远程对象,不支持标准的InnoDB维护操作。
补充说明
MariaDB中InnoDB的OPTIMIZE TABLE本质是执行表重建(ALTER TABLE ... ENGINE=InnoDB)加表分析(ANALYZE TABLE),这类操作依赖对本地表空间文件的直接读写权限,远程对象无法满足该要求,因此触发错误。
内容的提问来源于stack exchange,提问作者lyborko
相关产品推荐
相关产品推荐

