Loading

记录一次mysql从ibd文件恢复数据的过程

mysql5.7版本中,一个表会对应两个文件,一个是 .frm 一个是.ibd
如果是分区表,会有多个.ibd文件,并以格式 tablename#P#partitionname.ibd格式命名

8.x版本中,没有frm文件,只有ibd文件

  1. 新建库
  2. 新建表
  3. discard 表空间
ALTER TABLE $TABLE_NAME DISCARD TABLESPACE;
ALTER TABLE $TABLE_NAME DISCARD PARTITION $PARTITION_NAME TABLESPACE;
  1. 复制ibd文件
  2. 修改ibd文件所有权为 mysql:mysql
  3. import 表空间
ALTER TABLE $TABLE_NAME IMPORT TABLESPACE;
ALTER TABLE $TABLE_NAME IMPORT PARTITION $PARTITION_NAME TABLESPACE;

已知问题:
如果表空间很大,超过50G,恢复表空间的时候可能会很久(>10min),并且会有一个warning

posted @ 2024-06-13 11:23  可是我爱你啊  阅读(62)  评论(0编辑  收藏  举报