无全量备份、未开启binlog日志,利用percona工具恢复delete的数据
当我们忘记做全量备份时,并且没有开启binlog,并执行了deletefromsbtest;数据全部丢失,要想恢复是很有难度的。今天,利用PerconaDataRecoveryToolforInnoDB工
当我们忘记做全量备份时,并且没有开启binlog,并执行了
delete from sbtest;数据全部丢失,要想恢复是很有难度的。
今天,利用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
二、全表删除sbtest表
delete from sbtest;三、恢复
1、提取ibd物理文件,按照每页16K,单独存放。
在这里,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-- host 主机地址
-- port 端口
-- user 用户名
-- password 密码
-- db 数据库名
-- table 表名
3、再次执行make编译命令
# cd percona-data-recovery-tool-for-innodb-0.5/ # make4、恢复删除的数据
# cd percona-data-recovery-tool-for-innodb-0.5/ # ./constraints_parser -D -5 -f pages-1410414511/FIL_PAGE_INDEX/0-28/ > /tmp/sbtest.txt-D 恢复删除的行
-5 表的文件格式,默认是Compact
(不清楚的朋友,可以用show table status命令查看)
总结:
通过上述方法,顺利的完成了delete数据恢复。在数据被删除后,切记要备份ibd数据文件,一定不要覆盖,否则都是不能完成修复的。目前该工具不支持字符串set类型。
本文出自 “贺春旸的技术专栏” 博客,请务必保留此出处

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Es gibt zwei Löschtasten auf der Tastatur: die Entf-Taste (Löschen) und die Rücktaste. Die Rücktaste wird auch als Rücktaste bezeichnet. Mit dieser Taste können Sie den Textinhalt vor dem Cursor löschen. Mit der Löschtaste können Sie Zeichen, Dateien und ausgewählte Objekte löschen. Jedes Mal, wenn Sie die Entf-Taste drücken, wird ein Zeichen rechts vom Cursor gelöscht und das Zeichen rechts vom Cursor wird um einen Frame nach links verschoben. Drücken Sie die Entf-Taste Taste zum schnellen Löschen; in einigen Anwendungen Wählen Sie ein Objekt im Programm aus und drücken Sie die Entf-Taste, um das ausgewählte Objekt schnell zu löschen.

Die Funktionen der Löschtaste sind: 1. Zeichen löschen; jedes Mal, wenn die Löschtaste gedrückt wird, wird ein Zeichen rechts vom Cursor gelöscht und das Zeichen rechts vom Cursor wird um ein Bild nach links verschoben. 2. Dateien löschen; wenn eine oder mehrere Dateien/Ordner ausgewählt sind, drücken Sie die Entf-Taste, um sie schnell zu löschen (zur Wiederherstellung in den Papierkorb verschieben). 3. Löschen Sie das ausgewählte Objekt. Wählen Sie in einigen Anwendungen ein Objekt aus und drücken Sie die Entf-Taste, um das ausgewählte Objekt schnell zu löschen.

Strg+Alt+Entf: „Mac“-Modus StrgAltEntf ist eine häufige Tastenkombination, die von Windows-Benutzern zum Öffnen des Task-Managers verwendet wird. Normalerweise beenden sie unerwünschte Anwendungen über das Manager-Menü, um Speicherplatz auf ihrem Computer freizugeben. Mit der Mac-Variante Strg+Alt+Entf können Sie das Menü „Beenden erzwingen“ öffnen. Wenn Mac-Benutzer das Programm beenden möchten, das das Problem verursacht, oder geöffnete Programme anzeigen möchten, können sie über das Menü interagieren, um weitere Untersuchungen durchzuführen. Wie führe ich ControlAltDelete auf einem Mac durch? Bei fehlerhaften Anwendungen müssen Sie diese Tastenkombination verwenden

Durch Löschen gelöschte Dateien können wiederhergestellt werden. Wenn Benutzer Dateien mit „Löschen“ löschen, werden diese Dateien in den Papierkorb verschoben und nicht vollständig gelöscht. Wiederherstellungsmethode: 1. Öffnen Sie den „Papierkorb“, wählen Sie die Datei aus, die Sie wiederherstellen möchten, und klicken Sie auf „Dieses Element wiederherstellen“. 2. Öffnen Sie den „Papierkorb“, wählen Sie die Datei aus, die Sie wiederherstellen möchten, und verwenden Sie die Verknüpfung „Rückgängig“. „Strg+z“.

In Go werden Panic und Recover zur Ausnahmebehandlung verwendet. Panic wird zum Melden von Ausnahmen und Recover zum Wiederherstellen nach Ausnahmen verwendet. Panic stoppt die Programmausführung und löst einen Ausnahmewert vom Typ interface{} aus. Recover kann Ausnahmen von verzögerten Funktionen oder Goroutinen abfangen und den Ausnahmewert des Typs interface{} zurückgeben, den es auslöst.

Im heutigen Zeitalter der Webentwicklung ist eine effektive und effiziente Tabellenverwaltung sehr wichtig geworden, insbesondere beim Umgang mit datenintensiven Webanwendungen. Die Möglichkeit, Zeilen dynamisch einer Tabelle hinzuzufügen, zu bearbeiten und zu löschen, kann das Benutzererlebnis erheblich verbessern und Anwendungen interaktiver machen. Eine effektive Möglichkeit, dies zu erreichen, besteht darin, die Leistungsfähigkeit von jQuery zu nutzen. jQuery bietet viele Funktionen, die Entwicklern bei der Durchführung von Vorgängen helfen. Tabellenzeilen Eine Tabellenzeile ist eine Sammlung miteinander verbundener Daten, die durch Elemente in HTML dargestellt werden. Es wird verwendet, um Zellen (dargestellt durch Elemente) in einer Tabelle zu gruppieren. Jedes Element wird zum Definieren einer Zeile in der Tabelle verwendet und enthält bei Tabellen mit mehreren Attributen normalerweise ein oder mehrere Elemente. Syntax$(selector).append(co

PUT- und Löschanfragen werden in Formularformularen verwendet und unterstützen nur Get- und Post-Methoden. Um die Put-Methode zu implementieren, können wir sie durch die folgenden drei Schritte implementieren: 1) HiddenHttpMethodFilter in SpringMVC konfigurieren 2) Erstellen Sie ein Post-Formular auf der Seite 3) Erstellen Sie ein Eingabeelement mit dem Namen „_method“. Der Wert ist die angegebene Anforderungsmethode. Rufen Sie den Wert von „_method“ in der HiddenHttpMethodFilter-Klasse ab, um die neue Anforderungsmethode abzurufen. Das Tag ist die Thymeleaf-Vorlage, was bedeutet, dass es nur für Mitarbeiter gilt

Panic im Go-Framework wird verwendet, um nicht behebbare Ausnahmen auszulösen, und Recover wird verwendet, um Panic zu beheben und Bereinigungsvorgänge durchzuführen. Sie können Ausnahmen wie Datenbankverbindungsfehler behandeln und so die Stabilität der Anwendung und das Benutzererlebnis gewährleisten.
