ホームページ データベース mysql チュートリアル 无全量备份、未开启binlog日志,利用percona工具恢复delete的数据

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

Jun 07, 2016 pm 04:48 PM
delete recover

当我们忘记做全量备份时,并且没有开启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

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

二、全表删除sbtest表

delete from sbtest;

三、恢复

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

在这里,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/ # make

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

-D 恢复删除的行

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

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


总结:

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



本文出自 “贺春旸的技术专栏” 博客,请务必保留此出处

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

キーボードの削除キーとは何ですか? キーボードの削除キーとは何ですか? Mar 16, 2023 pm 04:48 PM

キーボードの削除キーは、del (削除) キーとバックスペース キーの 2 つです。バックスペースはバックスペース キーとも呼ばれます。このキーはカーソルの前のテキスト コンテンツを削除でき、削除キーは文字、ファイル、選択したオブジェクトを削除できます。 Del キーを押すたびに、カーソルの右側の文字が削除され、カーソルの右側の文字が 1 フレーム左に移動します。1 つ以上のファイル/フォルダが選択されている場合は、Del キーを押します。キーを押すとすぐに削除できます。一部のアプリケーションでは、プログラム内のオブジェクトを選択し、Del キーを押すと、選択したオブジェクトをすぐに削除できます。

削除キーの機能は何ですか 削除キーの機能は何ですか Mar 10, 2023 pm 06:07 PM

削除キーの機能は次のとおりです: 1. 文字の削除; 削除キーを押すたびに、カーソルの右側の文字が削除され、カーソルの右側の文字が 1 フレーム左に移動します。 2. ファイルを削除します。1 つ以上のファイル/フォルダーが選択されている場合は、Delete キーを押してそれらをすぐに削除します (回復のためにごみ箱に移動します)。 3. 選択したオブジェクトを削除します。一部のアプリケーションではオブジェクトを選択し、Delete キーを押すと、選択したオブジェクトがすぐに削除されます。

Control + Alt + Delete の方法: Mac チュートリアル Control + Alt + Delete の方法: Mac チュートリアル Apr 16, 2023 pm 12:37 PM

Control+Alt+Delete:「Mac」モード Ctrlaltdel は、Windows ユーザーがタスク マネージャーを開くために使用する一般的なキーの組み合わせです。通常、マネージャー メニューから不要なアプリケーションを終了して、コンピューター上のスペースを解放します。 Control+Alt+Delete Mac 版を使用すると、強制終了メニューを開くことができます。 Mac ユーザーが問題の原因となっているプログラムを終了したい場合、または開いているプログラムを表示したい場合は、メニューを操作してさらに調査することができます。 Mac で ControlAltDelete を実行するにはどうすればよいですか?正常に動作していないアプリケーションがある場合は、このキーの組み合わせを使用する必要があります。

削除されたファイルは復元できますか? 削除されたファイルは復元できますか? Feb 24, 2023 pm 03:49 PM

delete で削除されたファイルは復元できます。ユーザーが delete を使用してファイルを削除すると、これらのファイルはごみ箱に移動され、完全には削除されないためです。回復方法: 1. 「ごみ箱」を開き、復元したいファイルを選択し、「この項目を復元」をクリックします; 2. 「ごみ箱」を開き、復元したいファイルを選択し、元に戻すショートカットを使用します。 「ctrl+z」。できます。

Golang 例外処理におけるパニックとリカバリー Golang 例外処理におけるパニックとリカバリー Apr 15, 2024 pm 06:15 PM

Go では、例外処理に Panic と Recover が使用されます。 Panic は例外を報告するために使用され、Recover は例外から回復するために使用されます。パニックによりプログラムの実行が停止し、interface{} 型の例外値がスローされます。 Recover は、遅延関数または goroutine からの例外をキャッチし、スローするインターフェイス型の例外値を返すことができます。{}

jQueryでテーブル行を追加、編集、削除するにはどうすればよいですか? jQueryでテーブル行を追加、編集、削除するにはどうすればよいですか? Sep 05, 2023 pm 09:49 PM

今日の Web 開発時代では、特にデータ量の多い Web アプリケーションを扱う場合、効果的かつ効率的なテーブル管理が非常に重要になっています。テーブルの行を動的に追加、編集、削除できる機能により、ユーザー エクスペリエンスが大幅に向上し、アプリケーションがよりインタラクティブになります。これを達成する効果的な方法は、jQuery の機能を活用することです。 jQuery は、開発者が操作を実行するのに役立つ多くの機能を提供します。テーブルの行 テーブルの行は、相互に関連するデータのコレクションであり、HTML の要素で表されます。これは、テーブル内のセル (要素で表される) をグループ化するために使用されます。各要素はテーブル内の行を定義するために使用され、複数属性テーブルの場合、通常は 1 つ以上の要素が含まれます。構文$(セレクター).append(co

SpringBoot で PUT リクエストと Delete リクエストを使用する方法 SpringBoot で PUT リクエストと Delete リクエストを使用する方法 May 13, 2023 pm 12:16 PM

PUT リクエストと Delete リクエストは Form フォームで使用され、get メソッドと post メソッドのみをサポートします。put メソッドを実装するには、次の 3 つの手順で実装できます: 1) SpringMVC で HiddenHttpMethodFilter を設定する 2) 上に投稿フォームを作成する3ページ目) 指定したリクエストメソッドを値として名前「_method」という入力項目を作成し、HiddenHttpMethodFilterクラスの「_method」の値を取得して新しいリクエストメソッドを取得します。番目のタグは thymeleaf テンプレートです。これは、従業員が

golang フレームワークのデバッグ時のパニックとリカバリーの適用 golang フレームワークのデバッグ時のパニックとリカバリーの適用 Jun 04, 2024 pm 01:01 PM

Go フレームワークの Panic は回復不可能な例外を発生させるために使用され、Recover は Panic から回復してクリーンアップ操作を実行するために使用されます。データベース接続の失敗などの例外を処理できるため、アプリケーションの安定性とユーザー エクスペリエンスが確保されます。

See all articles