一个技术宅的个人博客

记一次阿里云数据库mysql恢复

今天公司发生一件突发事件,一个小程序的所有产品被新来的同事不小心删除了。看着运营痛心疾首,咬牙切齿的表情,我决定帮他恢复数据。在公司奋战3个多小时,踩了无数个坑,还是没能搞定,看着办公室空无一人,大家都已经下班打卡,我也只能暂避锋芒,偃旗息鼓。回家休息两个小时后,我灵光一闪,又有新的作战计划,重整旗鼓,继续战斗!又经过三个小时的浴血奋战,我终于拿下了胜利!

阿里云的在线恢复是直接克隆一个实例出来,那就要额外花一笔费用,如果不是急用的话没有必要。

那就只能自己下载下来恢复了,目前是免费下载的。

https://help.aliyun.com/knowledge_detail/41817.html?spm=a2c4g.11186623.6.740.11fb59adV5NFwl

我是按照这篇文章下载数据的,但是里面只有.ibd文件,没有.frm文件,后来了解到,mysql8是没有frm文件的。

恢复的时候需要mysql版本一致才行,要不然会出错。在这上面我花费了很长时间。

我一直在研究怎么把mysql8里的ibd文件恢复到mysql5.7上,到最后也没有什么结果。

接下来是恢复命令记录。有什么不懂的,或者对我的建议可以在下面留言

  1. 首先需要一个跟要恢复的表结构完全一致的表
  2. 然后执行ALTER TABLE 表名 DISCARD TABLESPACE。(这里一定不能手动删除ibd文件,如果删除了会导致mysql停止后无法重启)
  3. 把要恢复的ibd文件复制到mysql的data文件夹下,跟表名.frm文件同级
  4. 然后执行ALTER TABLE 表名 IMPORT TABLESPACE
  5. 完成,数据恢复成功。

 

 

赞(10) 打赏
未经允许不得转载:孙健个人博客 » 记一次阿里云数据库mysql恢复

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏