Mysql Innodb表空間被廢棄

問題:

大佬,請教一個數據庫大表(單表4億條)移機後Tablespace has been discarded 的問題:           數據庫版本5.7.22,           innodb引擎,           大表做了按月分區。 現在做了這樣的操作:         A,   B 兩個完全相同的數據庫,表也一樣。           將A庫的 表 a   的idb文件複製替換了B庫  的表 a  的 ibd       出現問題:           B庫的表a不能插記錄進去了。       之後,又做了這樣的操作:            B庫rename 表a 爲b ,  重建表a  ,            之後insert into a  select  from a where  id=1 ;             報Tablespace has been discarded; 有大佬指導指導麼?           

 

解答:

目標服務器:創建表結構 目標服務器執行:alter table l discard tablespace; 丟棄表空間文件 源服務器:flush table l for export; 添加讀鎖 拷貝文件到目標服務器:cp l.ibd  l.cfg  ../sbtest/ 源服務器釋放鎖:unlock tables; 目標服務器對l.ibd  l.cfg 賦予權限 目標服務器執行: alter table l import tablespace; 加載表空間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章