核心功能
1. MySQL 表碎片恢复
当mysql被删库、删表、勒索病毒破坏后,因为表文件极易被部分覆盖、损坏,导致用文件恢复工具通常无法恢复出表文件,或者恢复出的表文件内容为乱码,mysql无法正常识别加载,这时需要用mysql碎片扫描工具扫描残存的表数据,可搜索mysql5/8版本InnoDB表碎片,包括独立表空间和共享表空间,上千案例实践经验,通常能恢复出90%以上数据碎片。
2. binlog碎片恢复
mysql默认自动循环删老旧的binlog,在某些场景又需要老的binlog重做事务,此功能从磁盘扇区搜索mysql5/8版本binlog碎片,并支持binlog碎片重新整理为标准mysql-bin.00xxxx文件,并支持将binlog解析为sql语句。另外,能同步输出mysqlbinlog工具可解析的mysql-bin文件。
3. frm表结构碎片恢复
搜索出磁盘上所有未覆盖的frm表结构文件碎片,并支持解析为create table建表语句。
MySQL恢复步骤-WIN
1. 准备扫描环境
下载DU_MySQL_Restore_Win扫描工具后,将其保存在有足够可用空间的分区上,特别注意不要放在待扫描的分区上,否则输出 的数据可能覆盖到原始数据。
2. 运行扫描工具
扫描镜像文件等:直接双击运行工具,把文件拖入命令行窗口,回车。注意目标文件不要放在有空格、特殊符号的路径中。
扫描本地分区:以管理员身份运行工具,然后直接输入需要扫描的盘符。如D盘,就输入 D,回车。
搜索本地磁盘:打开 管理-存储-磁盘管理,查看需扫描磁盘的序号,通常是 磁盘0 、 磁盘1 、 以次类推。如需扫描磁盘1,就输入 1,回车。
下图所示为扫描D盘:
3. 扫描结果解读
扫描时会在工具路径下创建RESTORE_FILE目录,RESTORE_FILE目录保存以下文件/目录:
数据库目录:以数据名称命名,如mysql 、 performance_schema 、用户数据库等,子目录下保存扫描到的表空间.ibd文件。
FRM目录:保存frm表结构文件,以表字段名命名
table_struct.sql:本工具从frm文件解读的createtable建表脚本
binlogfile:binlog碎片
binlogmap:binlog碎片映射表
mysql-bin.000001:输出的标准binlog文件,可被mysqlbinlog工具解读
binlog.sql:本工具解读的binlog输出
search.log:扫描日志
4. 高级参数说明
不配置参数仍可正常工作。也可在工具运行目录创建config.ini文件,设置以下高级参数:
READ_BUFFER=512
#默认512MB,读缓存大小,单位MB
START_OFFSET=0
#默认0,起始搜索位置,单位字节
#SEARCH_LEN
#默认剩余所有长度,搜索长度,单位字节
DATABASE=“dbname1”,“dbname2”
#指定binlogevent筛选的数据库名,用于指定binlog的筛选和ibdata1在搜索表名时增强搜索
isSearchInnoDB=1
#默认1,是否搜索ibd
isSearchFrm=1
#默认1,是否搜索frm
isCHECKSUMibd=0
#默认0,不执行innodb的checksum检查
isSearchBinlog=1
#默认1,是否搜索binlog
isMysql_binOut=1
#未授权0,授权1,是否输出标准mysql-bin文件
NO_CRC32=0
#默认0,源binlog是否无CRC32字段
isCHECKSUMbinlog =0
#默认0,执行binlogevent的checksum检查。仅NO_CRC32=0时有效
TIMESTAMP_MIN=0
#默认1个月前,binlogevent的最小抽取时间-----按授权状态配置
TIMESTAMP_MAX=0
#默认当前时间,binlogevent的最大抽取时间-----按授权状态配置
MAX_BIN_LOG_FILE_SIZE=500
#默认500MB,单位MB
MySQL恢复步骤-Linux
1. 准备扫描环境
上传DU_MySQL_Search_Linux到Linux上。
注意不要上传到mysql data 目录所在的同一分区; 如果 Linux 服务器只有一个分区,且估计 binlog 大小不超过内存容量的50%,则可将工具上传到 /dev/shm 目录。 /dev/shm是内存虚拟目录,写入数据在内存中不落盘,系统重启后/dev/shm 自动清空。
给执行权限 :
chmod 777 DU_MySQL_Search_Linux
2. 运行扫描工具
按实际情况指定数据源,以下示例扫描/dev/sda,并且在后台运行:
sudo nohup DU_MySQL_Search_Linux -s /dev/sda &
也可以直接在前台运行:
sudo DU_MySQL_Search_Linux -s /dev/sda
如下图所示,前台扫描/dev/sda3:
3. 扫描结果解读
扫描时会在工具路径下输出扫描结果:
ibdfile:表空间.ibd文件碎片。
frmfile:frm表结构碎片。
binlogfile:binlog碎片
binlogmap:binlog碎片映射表
nohup.out:扫描日志,仅nohup模式运行时有
4. win环境解析扫描结果
将Linux下扫描的结果,打包后下载到windows环境,运行DU_MySQL_Restore_Win.exe,即可进一步解析出mysql数据。
5. 高级参数说明
不配置参数仍可正常工作。也可在工具运行目录创建config.ini文件,设置高级参数与windows版本相同。
另外运行时,在命令行可带高级参数。参数冲突时,命令行参数优先级高于config.ini配置文件。
DU_MySQL_Search_Linux -s {source_dev_path} [ -S {SrcDevSizeBytes} -o {start_off} -l {search_len} -t {TIMESTAMP_MIN} -T {TIMESTAMP_MAX} -U { I|F|L } ]
-s {source_dev_path} :搜索目标,如磁盘、分区、虚拟卷、镜像文件等。
以下参数非必须:
-S {SrcDevSizeBytes} :指定目标大小,无法获取设备容量时可指定,否则不必指定。
-o {start_off} :指定搜索起始位置,单位字节。
-l {search_len}:指定搜索长度,单位字节。
-t {TIMESTAMP_MIN}:binlogevent的最小抽取时间。
-T {TIMESTAMP_MAX}:binlogevent的最大抽取时间。
-U { I|F|L }:不搜索: I:ibd碎片,F:frm表结构碎片,L:binlog碎片
获取软件
DU_MySQL_Search/Restore win/Linux 5.3 免费版
百度网盘链接:https://pan.baidu.com/s/1AU7c0gsN0uxo1yCaR9NLBQ 提取码:n6sr