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

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

Jun 07, 2016 pm 02:52 PM
binlog guna sandaran hidupkan log

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

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

delete from sbtest;
Salin selepas log masuk
Salin selepas log masuk

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


今天,利用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
Salin selepas log masuk

二、全表删除sbtest表

delete from sbtest;
Salin selepas log masuk
Salin selepas log masuk

三、恢复

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
Salin selepas log masuk

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
Salin selepas log masuk

-- host 主机地址

-- port 端口

-- user 用户名

-- password 密码

-- db 数据库名

-- table 表名


3、再次执行make编译命令

# cd percona-data-recovery-tool-for-innodb-0.5/
# make
Salin selepas log masuk

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
Salin selepas log masuk

-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);
Salin selepas log masuk

wKioL1QWk57TtLghAAFSBQvfbic614.jpg


总结:

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



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membolehkan dlss? strategi pembukaan dlss Bagaimana untuk membolehkan dlss? strategi pembukaan dlss Mar 13, 2024 pm 07:34 PM

Terdapat fungsi dlss dalam NVIDIA Selepas pengguna menghidupkan dlss, kadar bingkai permainan boleh dipertingkatkan dengan banyak Oleh itu, ramai rakan bertanya kepada editor bagaimana untuk menghidupkan dlss. Mula-mula, pastikan kad grafik menyokong dlss dan permainan menyokong dlss, kemudian anda boleh mendayakannya dalam permainan. Mari lihat tutorial khusus di bawah. Jawapan: DLSS secara amnya perlu dibuka dalam permainan. Untuk mendayakan dlss, anda mesti memenuhi syarat peranti dan permainan. dlss ialah "kesan pengesanan sinar", anda boleh memasukkan tetapan permainan. Kemudian pergi ke tetapan "Imej atau Grafik". Kemudian cari "Ray Tracing Lighting" dan klik untuk membukanya. d

Adakah saya perlu mendayakan pecutan perkakasan GPU? Adakah saya perlu mendayakan pecutan perkakasan GPU? Feb 26, 2024 pm 08:45 PM

Adakah perlu untuk mendayakan GPU dipercepatkan perkakasan? Dengan pembangunan dan kemajuan teknologi yang berterusan, GPU (Unit Pemprosesan Grafik), sebagai komponen teras pemprosesan grafik komputer, memainkan peranan penting. Walau bagaimanapun, sesetengah pengguna mungkin mempunyai soalan tentang sama ada pecutan perkakasan perlu dihidupkan. Artikel ini akan membincangkan keperluan pecutan perkakasan untuk GPU dan kesan menghidupkan pecutan perkakasan pada prestasi komputer dan pengalaman pengguna. Pertama, kita perlu memahami cara GPU dipercepatkan perkakasan berfungsi. GPU adalah khusus

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP? Jun 03, 2024 pm 12:19 PM

Membuat sandaran dan memulihkan pangkalan data MySQL dalam PHP boleh dicapai dengan mengikuti langkah berikut: Sandarkan pangkalan data: Gunakan arahan mysqldump untuk membuang pangkalan data ke dalam fail SQL. Pulihkan pangkalan data: Gunakan arahan mysql untuk memulihkan pangkalan data daripada fail SQL.

Bagaimana untuk memulihkan fail hos yang dipadam Bagaimana untuk memulihkan fail hos yang dipadam Feb 22, 2024 pm 10:48 PM

Tajuk: Cara memulihkan fail hos selepas pemadaman Ringkasan: Fail hos ialah fail yang sangat penting dalam sistem pengendalian dan digunakan untuk memetakan nama domain kepada alamat IP. Jika anda secara tidak sengaja memadam fail hos, anda mungkin tidak dapat mengakses tapak web tertentu atau mengalami masalah rangkaian lain. Artikel ini akan memperkenalkan cara memulihkan fail hos yang dipadam secara tidak sengaja dalam sistem pengendalian Windows dan Mac. Teks: 1. Pulihkan fail hos dalam sistem pengendalian Windows fail Hos dalam sistem pengendalian Windows

Cara memasang, menyahpasang dan menetapkan semula sandaran pelayan Windows Cara memasang, menyahpasang dan menetapkan semula sandaran pelayan Windows Mar 06, 2024 am 10:37 AM

WindowsServerBackup ialah fungsi yang disertakan dengan sistem pengendalian WindowsServer, direka untuk membantu pengguna melindungi data penting dan konfigurasi sistem, serta menyediakan penyelesaian sandaran dan pemulihan yang lengkap untuk perusahaan peringkat kecil, sederhana dan perusahaan. Hanya pengguna yang menjalankan Server2022 dan lebih tinggi boleh menggunakan ciri ini. Dalam artikel ini, kami akan menerangkan cara memasang, menyahpasang atau menetapkan semula WindowsServerBackup. Cara Menetapkan Semula Sandaran Pelayan Windows Jika anda mengalami masalah dengan sandaran pelayan anda, sandaran mengambil masa terlalu lama, atau anda tidak dapat mengakses fail yang disimpan, maka anda boleh mempertimbangkan untuk menetapkan semula tetapan sandaran Pelayan Windows anda. Untuk menetapkan semula Windows

Cara mendayakan keadaan trafik masa nyata pada Amap Cara mendayakan keadaan trafik masa nyata pada Amap Feb 28, 2024 pm 07:22 PM

Perisian peta AMAP menyediakan kemudahan yang hebat untuk perjalanan pengguna dengan fungsinya yang sangat baik. Antaranya, fungsi trafik masa nyata amat dipuji pengguna kerana ia dapat membantu pengguna memahami keadaan jalan raya dengan lebih tepat, mengelak kesesakan, dan memilih laluan terbaik. Kemudian Zian boleh membuka keadaan trafik masa nyata peta Amap. Pengguna yang ingin mengetahui lebih lanjut mengenainya boleh mengikuti panduan tutorial editor di bawah untuk mengetahui lebih lanjut mengenainya. Bagaimana untuk menghidupkan keadaan trafik masa nyata pada Peta Amap? Langkah-langkah khusus: 1. Mula-mula buka perisian Amap dan masukkan halaman utama Kita boleh melihat butang pemberitahuan, lapisan dan maklum balas di sudut kanan atas. 2. Kemudian selepas mengklik, kotak dialog akan muncul . , di sini kita klik [Keadaan Trafik]

Bagaimana untuk membuat sandaran sistem dengan tutorial sandaran hantu-hantu Bagaimana untuk membuat sandaran sistem dengan tutorial sandaran hantu-hantu Mar 06, 2024 pm 04:30 PM

Baru-baru ini, ramai rakan telah bertanya kepada editor bagaimana untuk membuat sandaran sistem dengan ghost. 1. Selepas menjalankan Ghost, klik "OK", seperti yang ditunjukkan dalam rajah. 2. Klik "Local" → "Partition" → "ToImage" (maksudnya: local → partition → ke fail imej), seperti yang ditunjukkan dalam rajah. 3. Tetingkap Select Local Hard Disk muncul, klik cakera keras di mana partition yang hendak disandarkan terletak, dan kemudian klik "OK", seperti yang ditunjukkan dalam rajah. 4. Tetingkap Select Source Partition muncul (partition sumber ialah partition yang anda ingin sandarkan), klik pada partition di mana sistem berada (biasanya Zon 1, pastikan anda membetulkannya), dan kemudian klik "OK" , seperti yang ditunjukkan dalam rajah. 5. Bermain pada masa ini

Ajar anda cara mendayakan dua fungsi WeChat pada telefon Huawei anda! Ajar anda cara mendayakan dua fungsi WeChat pada telefon Huawei anda! Mar 22, 2024 pm 03:15 PM

Dalam masyarakat moden, telefon bimbit telah menjadi alat yang sangat diperlukan dalam kehidupan manusia. Fungsi telefon pintar semakin berkuasa, memenuhi pelbagai keperluan kehidupan harian, kerja dan hiburan orang ramai. Bagi sesetengah pengguna yang perlu menggunakan berbilang akaun WeChat pada masa yang sama, adalah amat penting untuk mendayakan fungsi dwi WeChat. Artikel ini akan mengajar anda cara mendayakan dua fungsi WeChat pada telefon Huawei anda, membolehkan anda mengurus berbilang akaun WeChat dengan mudah. Pertama sekali, sistem EMUI yang disertakan dengan telefon mudah alih Huawei sudah menyokong fungsi WeChat dwi di peringkat sistem, jadi anda hanya perlu mengikuti langkah berikut untuk menyediakannya.

See all articles