Home Database Mysql Tutorial 无全量备份、未开启binlog日志,利用percona工具恢复delete的数

无全量备份、未开启binlog日志,利用percona工具恢复delete的数

Jun 07, 2016 pm 02:52 PM
binlog use backup turn on log

当我们忘记做全量备份时,并且没有开启binlog,并执行了 deletefromsbtest; 数据全部丢失,要想恢复是很有难度的。 今天,利用Percona Data Recovery Tool for InnoDB工具 (仅支持InnoDB,MyISAM不支持) ,可以找回被删除的数据。 原理:在InnoDB引擎,del

当我们忘记做全量备份时,并且没有开启binlog,并执行了

delete from sbtest;
Copy after login
Copy after login

数据全部丢失,要想恢复是很有难度的。


今天,利用Percona Data Recovery Tool for InnoDB工具(仅支持InnoDB,MyISAM不支持),可以找回被删除的数据。


原理:在InnoDB引擎,delete删除操作,不是真正的删除物理文件上的行,而是增加一个删除的标记,我们都用过WORD吧?在修改字体的时候,有一个删除线的标记,如《MySQL 管理之道》,该工具利用这个特性,找回那些标注了删除线的数据,并存入到一个文本里,然后通过load data命令,批量插入到表里。


注:truncate不能恢复(truncate是直接清空数据行,并不是添加删除标记,你可以通过查看物理文件,执行了truncate操作,ibd文件变小,而执行了delete操作,ibd文件还跟之前的一样大),drop不能恢复(数据文件都没了,还怎么恢复?)。


一、安装Percona Data Recovery Tool for InnoDB工具

# wget https://launchpad.net/percona-data-recovery-tool-for-innodb/trunk/release-0.5/+download/percona-data-recovery-tool-for-innodb-0.5.tar.gz

# cd percona-data-recovery-tool-for-innodb-0.5/mysql-source
# ./configure
# cd ..
# make
Copy after login

二、全表删除sbtest表

delete from sbtest;
Copy after login
Copy after login

三、恢复

1、提取ibd物理文件,按照每页16K,单独存放。

# cd percona-data-recovery-tool-for-innodb-0.5/
# ./page_parser -5 -f /usr/local/mysql-5.5.37/data/test/sbtest.ibd
Copy after login

650) this.width=650;" style="max-width:90%" title="1.jpg" alt="wKioL1QWjBbQtR24AAcTs4jETjo710.jpg" />

650) this.width=650;" style="max-width:90%" title="2.jpg" alt="wKioL1QWjBfQ5v4eAAMOU75u5yE417.jpg" />


会在当前目录生成一个pages-1410414511目录(后面的数字是变化的,在你的机器上会跟我的不同)

650) this.width=650;" title="3.jpg" alt="wKioL1QWjNeRc1gzAAGi--J2QzM705.jpg" />

650) this.width=650;" title="5.jpg" alt="wKiom1QWjUXSIuLRAAjqU2V4Rmk266.jpg" />


在FIL_PAGE_INDEX目录下面,会生成主键和索引,数据最小的是主键,后面依次是每个列的索引

650) this.width=650;" title="4.jpg" alt="wKioL1QWjcfTyYIVAACR8hnJJ78355.jpg" />

在这里,0-28是sbtest表的主键(id),0-29是sbtest表的索引(k)。记住这个目录数字,后面我们需要通过这个目录恢复数据。


2、生成表结构

# cd percona-data-recovery-tool-for-innodb-0.5/
# ./create_defs.pl --host localhost --port 3306 --user root --password 123456 --db test --table sbtest > include/table_defs.h
Copy after login

-- host 主机地址

-- port 端口

-- user 用户名

-- password 密码

-- db 数据库名

-- table 表名


3、再次执行make编译命令

# cd percona-data-recovery-tool-for-innodb-0.5/
# make
Copy after login

650) this.width=650;" title="6.jpg" alt="wKiom1QWj3nzmDC0AAUbkA6b0jc746.jpg" />


4、恢复删除的数据

# cd percona-data-recovery-tool-for-innodb-0.5/
# ./constraints_parser -D -5 -f pages-1410414511/FIL_PAGE_INDEX/0-28/ > /tmp/sbtest.txt
Copy after login

-D 恢复删除的行

-5 表的文件格式,默认是Compact

(不清楚的朋友,可以用show table status命令查看)

650) this.width=650;" title="7.jpg" alt="wKioL1QWkRiDTihIAAI9NJg8fOQ199.jpg" />

-f 指定生成sbtest表的主键目录


执行完毕,如下图:

650) this.width=650;" title="8.jpg" alt="wKiom1QWknDBeZOHAAIWMrwbsBE715.jpg" />

会自动生成一个load data infile命令,请把这个复制下来,一会我们要导入数据。


在/tmp目录下,会生成sbtest.txt,我们就要用这个文件做恢复。

650) this.width=650;" title="9.jpg" alt="wKioL1QWkuHwSGz6AARoxsVwT9s990.jpg" />



5、导入到表里

LOAD DATA INFILE '/tmp/sbtest.txt' REPLACE INTO TABLE `sbtest` FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES STARTING BY 'sbtest\t' (id, k, c, pad);
Copy after login

wKioL1QWk57TtLghAAFSBQvfbic614.jpg


总结:

通过上述方法,顺利的完成了delete数据恢复。在数据被删除后,切记要备份ibd数据文件,一定不要覆盖,否则都是不能完成修复的。目前该工具不支持字符串set类型。



Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to enable dlss? dlss opening strategy How to enable dlss? dlss opening strategy Mar 13, 2024 pm 07:34 PM

There is a dlss function in NVIDIA. After users turn on dlss, the game frame rate can be greatly improved. Therefore, many friends are asking the editor how to turn on dlss. First, make sure that the graphics card supports dlss and the game supports dlss, then you can enable it in the game. Let’s take a look at the specific tutorials below. Answer: DLSS generally needs to be opened in the game. To enable dlss, you must meet the conditions of the device and game. dlss is the "ray tracing effect", you can enter the game settings. Then go to the "Image or Graphics" settings. Then find "Ray Tracing Lighting" and click to open it. d

Do I need to enable GPU hardware acceleration? Do I need to enable GPU hardware acceleration? Feb 26, 2024 pm 08:45 PM

Is it necessary to enable hardware accelerated GPU? With the continuous development and advancement of technology, GPU (Graphics Processing Unit), as the core component of computer graphics processing, plays a vital role. However, some users may have questions about whether hardware acceleration needs to be turned on. This article will discuss the necessity of hardware acceleration for GPU and the impact of turning on hardware acceleration on computer performance and user experience. First, we need to understand how hardware-accelerated GPUs work. GPU is a specialized

How to use MySQL backup and restore in PHP? How to use MySQL backup and restore in PHP? Jun 03, 2024 pm 12:19 PM

Backing up and restoring a MySQL database in PHP can be achieved by following these steps: Back up the database: Use the mysqldump command to dump the database into a SQL file. Restore database: Use the mysql command to restore the database from SQL files.

How to restore the deleted hosts file How to restore the deleted hosts file Feb 22, 2024 pm 10:48 PM

Title: How to restore the hosts file after deletion Summary: The hosts file is a very important file in the operating system and is used to map domain names to IP addresses. If you accidentally delete the hosts file, you may be unable to access certain websites or have other network problems. This article will introduce how to recover accidentally deleted hosts file in Windows and Mac operating systems. Text: 1. Restore hosts file in Windows operating system. Hosts file in Windows operating system

How to install, uninstall, and reset Windows server backup How to install, uninstall, and reset Windows server backup Mar 06, 2024 am 10:37 AM

WindowsServerBackup is a function that comes with the WindowsServer operating system, designed to help users protect important data and system configurations, and provide complete backup and recovery solutions for small, medium and enterprise-level enterprises. Only users running Server2022 and higher can use this feature. In this article, we will explain how to install, uninstall or reset WindowsServerBackup. How to Reset Windows Server Backup If you are experiencing problems with your server backup, the backup is taking too long, or you are unable to access stored files, then you may consider resetting your Windows Server backup settings. To reset Windows

How to backup system with ghost-ghost backup tutorial How to backup system with ghost-ghost backup tutorial Mar 06, 2024 pm 04:30 PM

Recently, many friends have asked the editor how to back up the system with ghost. Next, let us learn the tutorial on how to back up the system with ghost. I hope it can help everyone. 1. After running Ghost, click "OK", as shown in the figure. 2. Click "Local" → "Partition" → "ToImage" (meaning: local → partition → to image file), as shown in the figure. 3. The Select Local Hard Disk window appears, click the hard disk where the partition to be backed up is located, and then click "OK", as shown in the figure. 4. The Select Source Partition window appears (the source partition is the partition you want to back up), click on the partition where the system is located (usually Zone 1, be sure to get it right), and then click "OK", as shown in the figure. 5. Play at this time

How to enable real-time traffic conditions on Amap How to enable real-time traffic conditions on Amap Feb 28, 2024 pm 07:22 PM

AMAP map software provides great convenience for users’ travel with its excellent functions. Among them, the real-time traffic function is highly praised by users because it can help users understand road conditions more accurately, avoid congestion, and choose the best route. Then Zian can open the real-time traffic conditions on the Amap map. Users who want to know more about it can follow the editor's tutorial guide below to learn more about it! How to turn on real-time traffic conditions on Amap Map? Answer: [Amap] - [Layer] - [Traffic Conditions]. Specific steps: 1. First open the Amap software and enter the homepage. We can see the notification, layer, and feedback buttons in the upper right corner. Click [Layer] here; 2. Then after clicking, a dialog box will pop up. , here we click [Traffic Conditions]

Teach you how to enable dual WeChat functions on your Huawei phone! Teach you how to enable dual WeChat functions on your Huawei phone! Mar 22, 2024 pm 03:15 PM

In modern society, mobile phones have become an indispensable tool in people's lives. The functions of smart phones are becoming more and more powerful, meeting various needs of people's daily life, work and entertainment. For some users who need to use multiple WeChat accounts at the same time, it is particularly important to enable the dual WeChat function. This article will teach you how to enable dual WeChat functions on your Huawei phone, allowing you to easily manage multiple WeChat accounts. First of all, the EMUI system that comes with Huawei mobile phones already supports dual WeChat functions at the system level, so you only need to follow the following steps to set it up.

See all articles