MySQL Utilities

windows mysql5.7 InnoDB 通过frm与ibd对数据进行恢复

青春壹個敷衍的年華 提交于 2020-04-28 17:48:57
参考: https://www.jianshu.com/p/50a2e13cd5cf 安装MySQL Utilities 下载地址: https://dev.mysql.com/downloads/utilities/ 下载完后直接安装即可 如果运行时需要python就下载 https://dev.mysql.com/downloads/connector/python/ 本机还需要安装与需要恢复数据的一样版本的Mysql 使用mysqlfrm命令读取frm的表结构 把需要进行数据恢复的frm文件放到一个目录里 mysqlfrm --diagnostic ./frm文件目录/ 这样就可以获得数据表的结构了。 创建新的数据库 把第二步获得的数据表结构执行,(利用旧的脚本)创建表。 对已创建的表进行表空间卸载 ALTER TABLE 表名 DISCARD TABLESPACE; 每个表都进行一次空间卸载 停掉MYSQL服务 把原始数据文件里的ibd文件拷到新的数据库文件夹里 这里要注意把拷过来的ibd文件的所有者为mysql chwon mysql:mysql 数据库文件夹/* 启动MYSQL服务 对数据表进行空间装载 ALTER TABLE 表名 IMPORT TABLESPACE; 每个表都进行一次空间装载 来源: oschina 链接: https://my.oschina

MySQL 误删ibdata、ib_logfile恢复案例

一个人想着一个人 提交于 2020-01-07 13:05:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 昨天为了测试mysql数据库快速删除大库的方案,一时起意把redo和undo log也一起删除了,由此才有下文 一、前言 InnoDB 有两块非常重要的日志,一个是undo log,另外一个是redo log,前者用来保证事务的原子性以及InnoDB的MVCC,后者用来保证事务的持久性。 由于删除了这两个log,数据库又重启了,因此就需要一些其他办法来恢复数据库 二、mysqlfrm工具安装 要恢复数据,我们需要用到mysqlfrm工具, 需要安装MySQL Utilities包,这里可以采用yum等形式来安装,如下: yum install mysql-utilities.noarch 其他安装方式详见: MySQL管理工具MySQL Utilities 安装 三、开始数据恢复 由于影响的数据库比较多,大概40多个库,表大概有2500多个,手动操作很不现实,因此中间需要一些脚本代替体力劳动 3.1 用frm工具批量提取建表语句 mysqlfrm 是一个恢复性质的工具,用来读取.frm文件并从该文件中找到表定义数据生成CREATE语句 for n in `ls -d 10.*`;do mysqlfrm --basedir=/home/mysql/mysql --port=3336 --user=root