数据库恢复保姆级教程,再也不怕数据库服务器宕机了

场景

  • 服务器数据库宕机无法重启
  • 数据库原始ddl丢失
  • 最重要的:自己随便折腾数据库玩
  • 准备

  • 拿到数据库恢复文件(frm和ibd文件)
  • 服务器下载dbsake
  •  curl -s http://get.dbsake.net > dbsake chmod u+x dbsake ./dbsake --version dbsake, version 2.1.0 9525896

    开始恢复

  • 先利用dbsake通过frm文件恢复表结构
  • [root@ecs-xxxxxx ~]# ./dbsake frmdump tags.frm ---- Table structure for table `tags`-- Created with MySQL Version 5.7.28--CREATE TABLE `tags` (  `id` int(11NOT NULL AUTO_INCREMENT,  `create_time` datetime(6DEFAULT NULL,  `update_time` datetime(6DEFAULT NULL,  `name` varchar(255NOT NULL,  `slug` varchar(50NOT NULL,  `slug_name` varchar(255DEFAULT NULL,  `thumbnail` varchar(1023DEFAULT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `UK_sn0d91hxu700qcw0n4pebp5vc` (`slug`),  KEY `tags_name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  • 利用上述表结构语句在数据库创建表(直接复制执行上述语句即可)
  • CREATE TABLE tags ........;
  • 删除刚才新建的表的表空间
  • ALTER TABLE tags DISCARD TABLESPACE;
  • 将要恢复的tags.ibd文件复制到目标数据库文件夹下
  • windows
  • ctrl+C   -> ctrl + V------>到目标数据库文件夹
  • linux(注:<database_name> 占位符,表示要表所在的数据库)
  • cp tags.ibd /var/lib/mysql/<database_name> cd /var/lib/mysql/<database_name>chown mysql:mysql tags.ibd
  • 导入表空间
  • ALTER TABLE tags IMPORT TABLESPACE;

    打开表试试吧,中间没啥错误就恢复成功了

    有啥问题留言哦,感谢阅读,给个赞谢谢啦

    #程序员##MySQL##数据恢复#

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年3月1日
    下一篇 2021年3月1日

    相关推荐