mysql数据误删除(drop)的恢复. (ext3grep, extundelete)

drop table tbl_name 物理删除。没有备份,没有二进制日志

在系统删除文件并非在存储中抹去数据,而仅仅是标识对应的block块可以被重新的分配使用。
所以数据的恢复还是有希望的。但是那些恢复的数据块不能被其他的数据有覆盖掉,文件系统本身也要正常

1. 立即 stop mysql

2. 查看mysql安装目录的inode号。一般如果一个盘上只有一个mysql目录的话,那么inode为2。
ll -id /usr/local/mysql/

3. umount /path/to/mysql_data

工具的依赖性:(安装包CD-ROM里有的)
yum install e2fsprogs-devel.x86_64 e2fsprogs-libs.x86_64 e2fsprogs.x86_64 -y

工具一extundelete。适用与ext4文件系统

tar xf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make && make install

extundelete /dev/sqlbak/sqlbck_lv --inode 2 ##查看mysql安装目录下的所有文件
extundelete /dev/sqlbak/sqlbck_lv --inode 97537 ##选择mysql安装目录下的data目录
extundelete /dev/sqlbak/sqlbck_lv --inode 97541 ##继续查找想应的想要恢复的文件
....
extundelete /dev/sqlbak/sqlbck_lv --restore-inode 97653 ##恢复想要恢复的文件,会在文件的末尾

有Deleted标志
mv RECOVERED_FILES/file.97653 t2.MYD ##rename 原来的文件

挂载会mysql目录,mv恢复的文件,修改属主为mysql,启动文件

--------实例----------

Inode is Allocated
File mode: 16877
Low 16 bits of Owner Uid: 0
Size in bytes: 1024
Access time: 1450538126
...
File name | Inode number | Deleted status
. 2
.. 2
bin 32513
COPYING 11
data 97537
...
lib 130053
lost+found 15
mysql-test 16

工具二ext3grep适用与ext3文件系统
用法类似,依赖包、安装环境也一样
ext3grep /dev/sqlbak/sqlbck_lv --ls --inode 2 ##多一个--ls
ext3grep /dev/sqlbak/sqlbck_lv --restore-inode 97653

时间: 2024-10-23 02:53:15

mysql数据误删除(drop)的恢复. (ext3grep, extundelete)的相关文章

Mysql数据文件损坏如何恢复至最新状态

准备环境: 两台主机:A: 192.168.1.6   数据损坏B: 192.168.1.7   数据恢复 搭建步骤: 主机A(192.168.1.6): 完全备份数据库 mysqldump -A -F --single-transaction --master-data=1 > /backup/fullbak`date +%F`.sql Mysql数据文件损坏如何恢复至最新状态 原文地址:http://blog.51cto.com/9980200/2130012

Linux 文件系统引起的云盘文件系统异常导致 MySQL 数据页损坏事故恢复复盘

事故的起因是因为当我访问某个数据库的某个表的时候,MySQL 立即出现崩溃并且去查看 MySQL 的错误日志出现类似信息 2019-05-09T05:52:19.232564Z 1027 [ERROR] InnoDB: Space id and page no stored in the page, read in are [page id: space=1668620387, page number=16777216], should be [page id: space=1321, page

ubuntu环境下数据误删除恢复--extundelete的恢复原理

1. 数据恢复软件extundelete介绍 作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎之又慎,但是有时难免会出现数据被误删除的情况,在这个时候该如何快速.有效地恢复数据呢?本节我们就来介绍一下Linux系统下常用的几个数据恢复工具. 2. 如何使用“rm -rf”命令 在Linux系统下,通过命令“rm -rf”可以将任何数据直接从硬盘删除,并且没有任何提示,同时Linux下也没有与Windows下回收站类似的功能,也就意味着,数据在删除后通过常 规的手段是无法恢复

mysql数据删除恢复

在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办??? 下面,就mysql数据库误删除后的恢复方案进行说明. 一.工作场景(1)MySQL数据库每晚12:00自动完全备份.(2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库!(3)需要紧急恢复!可利用备份的数据文件以及增量的binlog文件进行数据恢复. 二.数据恢复思路(1)利用全备

mysql数据库误删除后的数据恢复操作说明

在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办??? 下面,就mysql数据库误删除后的恢复方案进行说明. 一.工作场景(1)MySQL数据库每晚12:00自动完全备份.(2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库!(3)需要紧急恢复!可利用备份的数据文件以及增量的binlog文件进行数据恢复. 二.数据恢复思路(1)利用全备

rm -rf误删文件的恢复(extundelete工具的使用)

实战:extundelete恢复数据的过程 在数据被误删除后,第一时间要做的是卸载被删除数据所在的磁盘或磁盘分区,如果是系统根分区的数据遭到误删除,就需要将系统进入单用户,并且将根分区以只读模式挂载.这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天.所以,以只读模式挂载磁盘可以尽量降低数据块

恢复MySQL数据到误删的表之前的数据

一.演示环境说明: 系统CentOS Linux release 7.2.1511 (Core) X_86 64位最小化安装mysql版本是官方二进制版本5.7.22-22,mysql采用的是二进制安装,单机上开启2个mysql实例,mysql实例要开启定时器event_scheduler=ON. 而且2个mysql实例都要开启Gtidxtrabackup 采用的是rpm包安装,版本是version 2.4.13 MySQL备份方式采用每天一次全量备份和binlog增量备份 二.模拟删除库,进行

PLSQL_闪回删除FlashBack Drop表误删除如何进行恢复(案例)

2014-06-25 BaoXinjian 一.摘要 在PLSQL开发时,有时候会遇到对表的误删除,其实遇到这种情况不需要紧张,如果问题较大,请DBA帮忙,如果只是小问题,只需自己处理,利用flashback闪回操作即可,可将表进行恢复 在删除表时,系统一般都是表放入回收站中,并没有完全进行删除,因此,只需从回收站中进行恢复就可以了,原理和Window中的回收站一样,但是一旦将回收站中的资料再进行删除,这个就很难恢复了,只能向DBA求救 1. 回收站的概念 回收站,是一个虚拟的容器,用于存放所有

mysql数据库删除恢复 mysql drop数据库恢复 mysql drop表数据恢复

客户名称 保密 数据类型 mysql 5.6 for win 数据容量 6 G 故障类型 数据库被误删除.客户自己尝试各类恢复工具无法找到丢失的数据库文件. 修复结果 使用极佳mysql数据库碎片恢复工具 从分区 提取全部的ibd文件, 根据客户提供的两个表的 表结构 ,生成frm文件,跟组合后的ibd文件 一起填入到新库,启动后表数据完全OK. 客户满意 是 耗时12小时. mysql数据库被删除,或者黑客删除库,以及删除表和删除表内数据, 只要原始分区保护的好,且没有写入数据 一般都可以恢复