无全量备份、未开启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类型。
本文出自 “贺春旸的技术专栏” 博客,请务必保留此出处

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Terdapat dua kekunci padam papan kekunci: kekunci del (padam) dan kekunci ruang belakang. Ruang belakang juga dipanggil kekunci ruang belakang Kekunci ini boleh memadam kandungan teks di hadapan kursor dan kekunci padam boleh memadam aksara, fail dan objek yang dipilih. Setiap kali anda menekan kekunci del, aksara di sebelah kanan kursor akan dipadamkan, dan aksara di sebelah kanan kursor akan mengalihkan satu bingkai ke kiri apabila satu atau lebih fail/folder dipilih, tekan butang Del kekunci untuk memadam dengan cepat dalam sesetengah aplikasi Pilih objek dalam program dan tekan kekunci Del untuk memadam objek yang dipilih dengan cepat.

Fungsi kekunci padam ialah: 1. Padam aksara; setiap kali kekunci padam ditekan, aksara di sebelah kanan kursor akan dipadam, dan aksara di sebelah kanan kursor akan menggerakkan satu bingkai ke kiri. 2. Padam fail apabila satu atau lebih fail/folder dipilih, tekan kekunci Padam untuk memadamnya dengan cepat (bergerak ke Tong Kitar Semula untuk pemulihan). 3. Padam objek yang dipilih, pilih objek dalam beberapa aplikasi dan tekan kekunci Padam untuk memadam objek yang dipilih dengan cepat.

Control+Alt+Delete: Mod "Mac" Ctrlaltdel ialah gabungan kekunci biasa yang digunakan oleh pengguna Windows untuk membuka Pengurus Tugas. Mereka biasanya keluar dari aplikasi yang tidak diingini daripada menu pengurus untuk mengosongkan sedikit ruang pada komputer mereka. Varian Control+Alt+Delete Mac membolehkan anda membuka menu Force Quit. Jika pengguna Mac ingin keluar dari program yang menyebabkan masalah atau melihat program terbuka, mereka boleh berinteraksi dengan menu untuk menyiasat lebih lanjut. Bagaimana untuk melaksanakan ControlAltDelete pada Mac? Jika anda mempunyai sebarang aplikasi yang tidak berfungsi, anda mesti menggunakan kombinasi kekunci ini untuk

Fail yang dipadam melalui pemadaman boleh dipulihkan kerana apabila pengguna menggunakan padam untuk memadam fail, fail ini akan dialihkan ke tong kitar semula dan tidak dipadam sepenuhnya. Kaedah pemulihan: 1. Buka "Tong Kitar Semula", pilih fail yang ingin anda pulihkan, dan klik "Pulihkan item ini" 2. Buka "Tong Kitar Semula", pilih fail yang ingin anda pulihkan, dan gunakan pintasan buat asal "ctrl+z".

Permintaan PUT dan Delete digunakan dalam borang Borang dan hanya menyokong kaedah get dan post Untuk melaksanakan kaedah put, kami boleh melaksanakan tiga langkah berikut: 1) Konfigurasikan HiddenHttpMethodFilter dalam SpringMVC 2) Buat borang siaran pada halaman 3) Buat item input, nama ="_method", nilainya ialah kaedah permintaan yang ditentukan Dapatkan nilai "_method" dalam kelas HiddenHttpMethodFilter untuk mendapatkan kaedah permintaan baharu. Tag ke-th ialah templat thymeleaf, yang bermaksud bahawa hanya apabila pekerja

Dalam Go, Panic dan Recover digunakan untuk pengendalian pengecualian. Panik digunakan untuk melaporkan pengecualian, dan Pulih digunakan untuk pulih daripada pengecualian. Panik akan menghentikan pelaksanaan program dan membuang nilai pengecualian bagi antara muka jenis{}. Pulih boleh menangkap pengecualian daripada fungsi tertunda atau goroutin dan mengembalikan nilai pengecualian antara muka jenis{} yang dilemparkannya.

Dalam era pembangunan web hari ini, pengurusan jadual yang berkesan dan cekap telah menjadi sangat penting, terutamanya apabila berurusan dengan aplikasi web berat data. Keupayaan untuk menambah, mengedit dan memadam baris secara dinamik daripada jadual boleh meningkatkan pengalaman pengguna dengan ketara dan menjadikan aplikasi lebih interaktif. Cara yang berkesan untuk mencapai ini adalah dengan memanfaatkan kuasa jQuery. jQuery menyediakan banyak ciri untuk membantu pembangun melaksanakan operasi. Baris jadual Baris jadual ialah koleksi data yang saling berkaitan, diwakili oleh elemen dalam HTML. Ia digunakan untuk mengumpulkan sel (diwakili oleh unsur) dalam jadual. Setiap elemen digunakan untuk menentukan baris dalam jadual, dan untuk jadual berbilang atribut, ia biasanya mengandungi satu atau lebih elemen. Syntax$(selector).append(co

Panic dalam rangka kerja Go digunakan untuk menimbulkan pengecualian yang tidak boleh dipulihkan, dan Recover digunakan untuk memulihkan daripada Panic dan melakukan operasi pembersihan. Mereka boleh mengendalikan pengecualian seperti kegagalan sambungan pangkalan data, memastikan kestabilan aplikasi dan pengalaman pengguna.
