MYSQL 数据库还原 drop-for-innodb

对MYSQL数据库进行数据恢复 MySQL数据恢复 DBRECOVER FOR MYSQL 阅读详情
  • 安装和准备数据
cd /tmp
yum install -y git  make gcc flex bison
git clone https://github.com/twindb/undrop-for-innodb.git
cd undrop-for-innodb
make
#/u01/app/mysql/db/binmysql_config MySQL安装目录
make sys_parser /u01/app/mysql/db/binmysql_config cc -o sys_parser sys_parser.c `mysql_config --cflags` `mysql_config --libs`
ls

mysql> CREATE TABLE t1 (
    ->   id  int(11) NOT NULL,
    ->   name varchar(10) DEFAULT NULL,
    ->   PRIMARY KEY (id),
    ->   KEY name (name)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t1(id,name) values(1,"1"),(2,"2"),(3,"3");
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> drop table t1;
Query OK, 0 rows affected (0.01 sec);
  •  stream_parser
cd /tmp/undrop-for-innodb
[root@k8s-master01 undrop-for-innodb]# ./stream_parser -f /data/mysql/engine/innodata/ibdata1
Opening file: /data/mysql/engine/innodata/ibdata1
File information:

ID of device containing file:        64768
inode number:                    106469449
protection:                         100640 (regular file)
number of hard links:                    1
user ID of owner:                     1000
group ID of owner:                    1000
device ID (if special file):             0
blocksize for filesystem I/O:         4096
number of blocks allocated:         262144
time of last access:            1575623631 Fri Dec  6 17:13:51 2019
time of last modification:      1576120124 Thu Dec 12 11:08:44 2019
time of last status change:     1576120124 Thu Dec 12 11:08:44 2019
total size, in bytes:            134217728 (128.000 MiB)

Size to process:                 134217728 (128.000 MiB)
Worker(0): 56.25% done. 2019-12-12 11:10:52 ETA(in 00:00:00). Processing speed: 64.000 MiB/sec
All workers finished in 1 sec
  • 解析页内容

#dumps/default 不能修改

cd /tmp/undrop-for-innodb

mkdir -p dumps/default
./c_parser  -4Df  pages-ibdata1/FIL_PAGE_INDEX/0000000000000001.page -t  dictionary/SYS_TABLES.sql >./dumps/default/SYS_TABLES  2>./dumps/default/SYS_TABLES.sql
./c_parser  -4Df  pages-ibdata1/FIL_PAGE_INDEX/0000000000000003.page  -t  dictionary/SYS_INDEXES.sql >./dumps/default/SYS_INDEXES  2>./dumps/default/SYS_INDEXES.sql
./c_parser  -4Df  pages-ibdata1/FIL_PAGE_INDEX/0000000000000002.page  -t  dictionary/SYS_COLUMNS.sql >./dumps/default/SYS_COLUMNS  2>./dumps/default/SYS_COLUMNS.sql
./c_parser  -4Df  pages-ibdata1/FIL_PAGE_INDEX/0000000000000004.page  -t  dictionary/SYS_FIELDS.sql >./dumps/default/SYS_FIELDS  2>./dumps/default/SYS_FIELDS.sql

 

  • 导入

mysql> create database testback;
Query OK, 1 row affected (0.01 sec)

mysql> use testback;

#导入表结构

source  /tmp/undrop-for-innodb/dictionary/SYS_TABLES.sql;
source  /tmp/undrop-for-innodb/dictionary/SYS_INDEXES.sql;
source  /tmp/undrop-for-innodb/dictionary/SYS_FIELDS.sql;
source /tmp/undrop-for-innodb/dictionary/SYS_COLUMNS.sql;

#导入表数据
source /tmp/undrop-for-innodb/dumps/default/SYS_TABLES.sql;
source /tmp/undrop-for-innodb/dumps/default/SYS_INDEXES.sql;
source /tmp/undrop-for-innodb/dumps/default/SYS_FIELDS.sql;
source /tmp/undrop-for-innodb/dumps/default/SYS_COLUMNS.sql;

 

[root@k8s-master01 undrop-for-innodb]# ./sys_parser -h127.0.0.1  -uroot  -p123.com   -d dictionary  test_1/t1
CREATE TABLE `t1`(
    `id` INT NOT NULL,
    `name` VARCHAR(20) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci',
    `age` INT,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB;

 

 

#参考

http://mysql.taobao.org/monthly/2017/11/01/

https://blog.youkuaiyun.com/cpongo1/article/details/89534185

 

 

 

DBRECOVER FOR MYSQL 用户手册 DBRECOVER FOR MYSQL是一个MySQL数据库(Innodb)恢复工具,该工具软件可以在MySQL没有备份的情况下,针对实例崩溃,Inoodb字典损坏无法启动数据库实例,DROP DATABASE,DROP TABLE,TRUNCATE TABLE,DELETE TABLE,磁盘/文件系统损坏等场景恢复数据库数据。 特性: 图形化界面操作,无需学习命令行 支持版本覆盖MYSQL 5.1 到 MySQL 8.0(2020年5月),支持MYSQL 8.0的全新数据字典结构 支持INN. 阅读详情

相关推荐

percona-data-recovery-tool-for-innodb-0.5工具修复丢失数据

一款开源的MySQL数据库InnoDB数据恢复工具:innodb-tools,它通过从原始数据文件中提取表的行记录,实现从丢失的或者被毁坏的MySQL表中恢复数据。例如,当你不小心执行DROP TABLE、TRUNCATE TABLE或者DROP DATABASE之后,可以通过以下方式恢复数据。 下载工具包;wget https://launchpad.net/percona-data-reco

疯狂的石头 6714

MySQL · 数据恢复 · undrop-for-innodb

简介 undrop-for-innodb 是针对 innodb 的一套数据恢复工具,可以从文件级别恢复诸如:DROP/TRUNCATE table, 删除表中某些记录,innodb 文件被删除,文件系统损坏,磁盘 corruption 等几种情况。本文简单介绍下使用方法和原理浅析。 准备 git clone https://github.com/tw...

weixin_34192993的博客 386

MySQL 的delete、truncate、drop 有什么区别

MySQL删除数据的方式通过 delete、truncate、drop 关键字进行删除,但是他们有什么区别呢?分别使用场景是什么呢?

yz2322944912的博客 1329

使用undrop-for-innodb恢复Innodb引擎下误删的数据

使用undrop-for-innodb工具恢复被drop database误删的数据

wk544863858的博客 2869

undrop-for-innodb

yum install make gcc flex bison cd /root/undrop-for-innodb-master make 会产生三个文件c_parser innochecksum_changer stream_parser

【阿里云大模型高级工程师ACP习题集】2.9 大模型应用生产实践(下篇)

【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!

davidkorhenn的博客 2238

推荐:TwinDB 数据恢复工具包 - UnDrop for InnoDB

推荐:TwinDB 数据恢复工具包 - UnDrop for InnoDB 在数据世界中,意外的丢失往往带来严重后果,但有了TwinDB Data Recovery Toolkit,即知名的UnDrop for InnoDB,你可以对数据库恢复有全新的信心。这个开源项目是一个强大的工具集,专门针对MySQL的InnoDB存储引擎,能在无备份的情况下帮助您从多种故障场景中恢复数据。 项目介绍 UnD...

gitblog_00020的博客 687

SAP-PM设备模块-PM主数据之功能位置

SAP-PM模块学习

TRUIXIANG的博客 5138

MySQL DROP TABLE操作以及 DROP 大表时的注意事项

语法: 删表 DROP TABLE Syntax DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE] 可一次删除一张或多张表。需具有所删除表上的DROP权限。表定义文件和数据文件均被移除。表被删除后表上的用户权限不会被自动删除。参数里表中指定的表名不存在则报错,但对

刀刀的专栏 5万+

第二章 零差云控关节模组内部构造

对零差云控的eRob70I进行了拆解

SFY__优快云的博客 5992

Benchmark系列——UnixBench测试项深度解析与性能优化指南

本文深度解析UnixBench基准测试套件的各项测试原理,包括Dhrystone、Whetstone、系统调用、进程管理、IPC及文件I/O等核心测试项。通过详细的测试项分析,指导用户解读测试报告,并提供针对性的内核参数调整、编译优化及系统配置实战指南,帮助用户精准定位并优化系统性能瓶颈。

weixin_29230901的博客 277

mysql drop database if exists_MySQL Drop Database之后的恢复测试

工具介绍工具的名字叫做: undrop-for-innodb当MySQL 执行 Drop Table或者 Drop Database 的时候,InnoDB并没有删除数据,数据的Page还在磁盘上。如果innodb_file_per_table被设置成了OFF,则数据库在ibdata1上,如果innodb_file_per_table被设置成了ON,则数据在.ibd文件中,MySQL已经删除了这个...

weixin_33252423的博客 1173

Cursor Agent模式下如何优雅切换conda环境运行Python脚本?3种实用方法实测

本文针对Cursor Agent模式下运行Python脚本时环境错配的痛点,实测了三种优雅切换conda环境的实用方法。通过Shell全局配置、项目级.cursorrc文件定制以及对话中直接指令,开发者可以确保AI助手在正确的虚拟环境中执行代码,从而提升开发效率和协作流畅度。

redis7keeper的博客 599

MySQL 8.0 数据库管理:SHOW DATABASES 与 DROP DATABASE 的 5 个实战场景与权限详解

本文详细解析了MySQL 8.0中SHOW DATABASES与DROP DATABASE命令的5个实战场景与权限控制机制。通过实际案例演示如何安全使用这两个核心命令,包括权限过滤、安全审计、自动化管理以及企业级最佳实践,帮助数据库管理员有效管理MySQL数据库并避免误操作风险。

weixin_33749131的博客 393

rag综述——RAG技术发展流程、最新技术挑战与系统级优化

RAG技术发展综述:本文系统梳理了检索增强生成(RAG)技术的演进历程,从2017年开放域问答中的早期探索,到2020年正式提出RAG架构并与大模型深度融合,再到2025年向系统化、可信化和智能体化发展。当前RAG面临检索可靠性、系统效率和生成可信度三大核心挑战,解决方案包括领域自适应训练、强化语义编码、迭代检索策略等优化方向。未来RAG将向GraphRAG、SafeRAG等方向发展,从单纯性能优化转向构建可控、可审计的语言系统框架,成为高可靠大模型应用的基础设施。

lovehu6686的博客 1244

吊打原版YOLOv8!ASF-YOLO多尺度融合+注意力机制实战解析(遥感/医疗/质检均适用)

ASF-YOLO融合YOLOv8的创新目标检测框架摘要 ASF-YOLO是针对小目标检测优化的先进框架,采用三重特征编码器和尺度序列融合技术增强多尺度特征提取能力。核心创新包括: 三重特征编码器(TPE)融合跨层级信息 尺度序列特征融合(SSFF)模块通过3D卷积处理多尺度信息 通道-位置注意力机制(CPAM)聚焦关键特征区域 Zoom_cat模块实现自适应多尺度特征融合 该框架特别适用于医学影像、遥感检测等小目标密集场景,通过动态特征权重调整显著提升检测精度。关键技术实现包含多尺度特征统一、3D卷积序列处

FJN110的博客 529

mysql恢复drop的表_MySQL没有备份怎么恢复被drop的表(利用undrop-for-innodb)

介绍:也许大家都难以理解,这么重要的数据为啥不备份(或者备份不可用)?而且还任性的drop table了。显然有备份是最好的,但是它们并不总是可用的。这种情况令人恐惧,但并非毫无希望。在许多情况下,可以恢复数据库或表中的几乎所有数据。恢复计划取决于InnoDB是否将所有数据保存在一个ibdata1中,还是每个表都有自己的表空间。本文将考虑innodb_file_per_table=OFF的情况。d...

weixin_30280259的博客 840

一文就够-InfiniBand 技术全面解析:从原理到实践的通俗易懂指南

想象一下,在一个超级数据中心里,成千上万台服务器需要像蜜蜂群体一样高效协作。如果用传统的网络连接,就像让每只蜜蜂都排着队传递消息,效率极低。InfiniBand(简称 IB)就是为了解决这种 "通信拥堵" 而生的高速网络技术,它专门为高性能计算(HPC)、数据中心和云计算环境设计,就像给服务器之间搭建了多条高速公路,让数据可以飞驰而过。

jundao1997的专栏 1396

mysql删掉数据库失败_如何删除MySQL数据库?

mysql删掉数据库失败MySQL is a very popular opensource database it is used by a lot of different types and size companies. In this post, we will look at how to drop or delete MySQL databases? MySQL是一种非常流行的开源数...

cunjiu9486的博客 1614

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MySQL 命令行与 GUI 工具对比:3 种方法安全执行 DROP DATABASE 操作

本文详细对比了MySQL命令行、MySQL Workbench和第三方IDE三种工具安全执行DROP DATABASE操作的方法,重点介绍了SHOW DATABASES检查、备份策略和风险控制脚本。针对不同场景提供专业建议,帮助开发者和DBA建立安全的数据库删除机制,避免数据丢失风险。

long_yu2的专栏 311

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MySQL数据库中delete、truncate、drop原理详解

删除数据的方式 常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除,这三种都可以用来删除数据,但场景却有所不同。 执行速度: drop > truncate > delete DELETE原理: DELETE属于数据库DML操作语言,只删除数据不删除表的结构,会走事务,执行时会触发trigger; 在 InnoDB 中,DELETE其实并不会真的把数据删除,MySQL实际上只是给删除的数据打了个标记为已删除,因此 delete 删除表中的数据时,表文件

qq_654603797 4349

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mysql恢复测试报告_MySQL Drop Database之后的恢复测试

工具介绍工具的名字叫做: undrop-for-innodb当MySQL 执行 Drop Table或者 Drop Database 的时候,InnoDB并没有删除数据,数据的Page还在磁盘上。如果innodb_file_per_table被设置成了OFF,则数据库在ibdata1上,如果innodb_file_per_table被设置成了ON,则数据在.ibd文件中,MySQL已经删除了这个...

weixin_39767386的博客 414

mysql undrop_undrop-for-innodb恢复drop的表

说明:Undrop恢复是通过扫描文件或磁盘设备,然后解析innodb数据页进而恢复丢失的数据,对于drop、truncate进行恢复。目前mysql8.0以后版本暂未提供支持。准备安装完之后,会在undrop-for-innodb目录下生成stream_parser和c_parser文件gcc `/mysql/mysql5.7/bin/mysql_config --cflags` `/mysql/...

weixin_35773019的博客 406

MySQL Drop Database之后的恢复测试

工具介绍工具的名字叫做: undrop-for-innodb代码地址: https://github.com/twindb/undrop-for-innodb官方文档: https://recovery.twindb.com/介绍工具的一篇ppt http://www.slideshare.net/akuzminsky/undrop-for-innodb当MySQL 执...

weixin_33910759的博客 2239
上一篇: 镜像仓库 Harbor配置和使用
下一篇: Vcenter server 6 迁移
取壳羊
博客等级 码龄15年 5粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值