物理备份单表还原
1、把data内数据库(MySQL5.7.26/data)拷贝到另外一台服务器
一个文件夹是一个数据库,看是全部拷贝还是单个拷贝都可以
2、 删除数据库下的.ibd(数据文件)和.frm(结构文件), db.opt不要删除(db.opt每个数据库文件只有一个)
3、执行建表sql,新建一样的表结构(新的要还原的数据库)
把原数据库表结构导出一份,导入到新数据库
4、执行下面语句删除数据库.ibd文件,从原数据库中拷贝.ibd过来;
-
单表操作
-
删除
-
ALTER TABLE table_name DISCARD TABLESPACE;
-
-
ALTER TABLE 要生成的表名 DISCARD TABLESPACE;
-
-
删除成功后,复制对应表.ibd文件到数据库在执行恢复
-
-
恢复
-
ALTER TABLE 表名 IMPORT TABLESPACE;
-
-
下面是批量操作
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文件语句)
-
插入,恢复数据 ALTER TABLE 表名 IMPORT TABLESPACE;
-
复制去数据库执行
.ibd数据文件已全部删除
拷贝.ibd数据文件过来,搜索出来全部拷贝过去
复制去数据库执行导入,恢复
完成后,数据全部恢复上来了