失效链接处理 |
MySQL异常恢复-drop表恢复 PDF 下载 下载地址:
提取码:7sc6
相关截图: 主要内容:
恢复思路:
1、通过延迟从库进行恢复
2、通过备份+时间点恢复
3、通过undrop_for_innodb进行恢复
4、通过磁盘恢复工具找回相应的文件,然后想办法恢复
概述:
此主要介绍undrop_for_innodb的恢复方法
环境:mysql 5.7.26
OS:CentOS Linux release 7.6.1810
mysql参数:innodb_file_per_table=ON场景
注意:一旦有误操作,请停止数据库写入,避免磁盘数据页被覆盖
另:数据库一定要备份、备份、备份
一、安装undrop-for-innodb工具
yum install -y make gcc flex bison
git clone https://github.com/twindb/undrop-for-innodb.git
cd undrop-for-innodb
make
make sys_parser
该工具实际也可找回被delete的数据
二、恢复drop表
innodb_file_per_table=ON场景下,drop表后,.ibd文件也被删除了,需要扫描磁盘获取相应的数据页进行恢复。而如果是innodb_file_per_table=OFF,则数据存放在共享表空间ibdata1里的,只要扫描该ibdata1文件即可。
此以innodb_file_per_table=ON场景下恢复为例。
1、stream_parser解析系统表空间
./stream_parser -f /dev/mapper/centos-root -s 1G -t 28G
运行完成后,会在当前目录下生成pages-centos-root, 目录下按照每个页为一个文件,分为索引页和数据较大的 BLOB 页,我们访问系统表的话,是存在索引页中的
#-s:表示使用多少内存来扫描磁盘
#-t:扫描磁盘的大小,此以整个磁盘分区大小为界限(如果是共享表空间则不需要改参数)
#-f:mysql数据datadir的所在的文件系统
|