物理备份单表还原

1、把data内数据库(MySQL5.7.26/data)拷贝到另外一台服务器

一个文件夹是一个数据库,看是全部拷贝还是单个拷贝都可以
 

2、 删除数据库下的.ibd(数据文件)和.frm(结构文件), db.opt不要删除(db.opt每个数据库文件只有一个)

 3、执行建表sql,新建一样的表结构(新的要还原的数据库)

把原数据库表结构导出一份,导入到新数据库
 

4、执行下面语句删除数据库.ibd文件,从原数据库中拷贝.ibd过来;

  1.  
    单表操作
  2.  
    删除
  3.  
    ALTER TABLE table_name DISCARD TABLESPACE;
  4.  
     
  5.  
    ALTER TABLE 要生成的表名 DISCARD TABLESPACE;
  6.  
     
  7.  
    删除成功后,复制对应表.ibd文件到数据库在执行恢复
  8.  
     
  9.  
    恢复
  10.  
    ALTER TABLE 表名 IMPORT TABLESPACE;
  11.  
     
  12.  
    下面是批量操作

4.1、获得所有表方法(cdj_shop是数据库,TABLE_NAME 是数据库表)

select TABLE_NAME from information_schema.COLUMNS where TABLE_SCHEMA="cdj_shop" GROUP BY TABLE_NAME;

 4.2、拼接(删除数据库.ibd文件语句)

 
  1.  
    插入,恢复数据 ALTER TABLE 表名 IMPORT TABLESPACE;
  2.  
    复制去数据库执行
 
 

 .ibd数据文件已全部删除
 

 

拷贝.ibd数据文件过来,搜索出来全部拷贝过去
 

 

复制去数据库执行导入,恢复
 

完成后,数据全部恢复上来了
 

 

posted @ 2023-02-24 09:30  追梦$少年  阅读(41)  评论(0编辑  收藏  举报