InnoDB 离线转储工具

一,应用场景;

1,表空间严重损坏,无法恢复;
2,数据库表空间文件丢失后从磁盘上打捞出部分数据页面;
3,恢复删除记录;

二,功能;

从数据页中直接转储出文本格式的行数据,从而可以后期用 LOAD DATA INFILE 导入数据库;

三,前提条件;

1,知道表结构,也就是建表时的SQL语句;
2,表空间中的尽可能多的数据页面;

四,中文支持;

1,支持utf8,gb2312,gbk;(有同类工具,但对中文支持有很大问题,部分中文行不能转储或缺失部分数据)

五,工具界面;

image

六,操作步骤;

1,选择数据文件;
如果选择的是一个表空间文件,请钩选下方的”转储ibd文件”这样,行外数据会从当前idb文件中读取,同时还需要指定”主键索引ID”,因为同一个 ibd文件中可能有多个索引,有效数据只在聚簇索引中,也就是主键中.

2,选择表定义SQL文件;
用软件导出的SQL语句,尽量删除无用的部分,只保留建表语句,目前支持 ansi文本文件和uft8带BOM与不带BOM文件,目前不支持中文字段名,对于中文字段名,可以在SQL语句中替换成英文,可以正确转储行数据.

3,选择BLOB页面文件夹;
当要转储的是页面打捞工具提取的页面时,或表空间经过打捞工具分析时,BLOB页会保存在一个文件夹下,每个页面按”PAGE_ON”命名,当转储行遇到行外数据时会到这里查找行外数据.

4,选择转储输出文件;
这个不用解释;同时会在此文件相同文件夹下生成一个同名+”.sql”的文件,作为导入数据时的参考;

5,选择”MYSQL5.6或更高”;
当MYSQL版本大于等于5.6时需要钩选此项.

posted @ 2016-05-26 10:08  比特猫  阅读(438)  评论(0编辑  收藏  举报