记一次MySQL数据库恢复(附方案)
程序员的成长之路
共 1574字,需浏览 4分钟
·
2022-01-10 02:12
阅读本文大概需要 2.8 分钟。
来自:blog.csdn.net/qq_34886352/article/details/112469998
恢复步骤概要
备份frm、ibd文件 如果mysql版本发生变化,安装回原本的mysql版本 创建和原本库名一致新库,字符集都要保持一样 通过frm获取到原先的表结构,通过的得到的表结构创建一个和原先结构一样的空表。 使用“ ALTER TABLE DISCARD TABLESPACE;
”命令卸载掉表空间将原先的ibd拷贝到mysql的仓库下 添加用户权限 “ chown . .ibd
”,如果是操作和mysql的使用权限一致可以跳过通过“ ALTER TABLE IMPORT TABLESPACE;
”命令恢复表空间完成
实际操作
1)备份文件
mkdir /usr/local/backup
cp * /usr/local/backup
2)安装原本版本的数据库
3)创建和原本一致的库
4)frm获取到原先的表结构
#下载
curl -s get.dbsake.net > dbsake
#添加执行权限
chmod u+x dbsake
#基础使用
./dbsake frmdump [frm-file-path]
#将所有读取结果输入到文件中
./dbsake frmdump [frm-file-path] > <文件名>
例如:
./dbsake frmdump student.frm teacher.frm > school.txt
5)卸载表空间
ALTER TABLE DISCARD TABLESPACE;
例如:
ALTER TABLE student DISCARD TABLESPACE;
ALTER TABLE teacher DISCARD TABLESPACE;
6)拷贝原本的ibd,到新的库中
show variables like 'datadir';
7)命令恢复表空间
ALTER TABLE IMPORT TABLESPACE;
例如:
ALTER TABLE student IMPORT TABLESPACE;
ALTER TABLE teacher IMPORT TABLESPACE;
8)完成
推荐阅读:
内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级......等技术栈!
⬇戳阅读原文领取! 朕已阅
评论