Inhaltsverzeichnis
情况一:误删部分数据,需要用最近一次备份覆盖
情况二:误删 table,表结构已经被drop了
Heim Datenbank MySQL-Tutorial MySQL单表ibd文件恢复_MySQL

MySQL单表ibd文件恢复_MySQL

Jun 01, 2016 pm 01:39 PM
新建

bitsCN.com

前言:

随着innodb的普及,innobackup也成为了主流备份方式。物理备份对于新建slave,全库恢复的需求都能从容应对。

但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行恢复呢? 

下文将进行详细分析。 

恢复过程中需要用到的工具,percona data recover tool : https://launchpad.net/percona-innodb-recovery-tool

 

情况一:误删部分数据,需要用最近一次备份覆盖

来自同一台机器的ibd恢复覆盖,且备份后table没有被recreate过。

这种情况是最简单的,备份时的ibd文件(后称老ibd)中的space id和index id 与 新ibd的space id 和index id一致。

且和ibdata文件中的space id和index id一致。因此,物理文件可以直接覆盖做恢复。

以下是详细步骤

Step -1 : 物理备份

 innobackupex --defaults-file=/usr/local/mysql3321/my.cnf --socket=/xfs/mysql3321/mysql.sock --user=root --password=password /xfs/backup/

Step 0 : apply log

innobackupex --apply-log --defaults-file=/usr/local/mysql3321/my.cnf  /xfs/backup/2012-10-17_11-29-20/

Step 1 : 备份现在的ibd文件(可选)

cp -a testibd.ibd testibd.bak

Step 2 : 舍弃现在ibd文件

mysql> alter table testibd discard tablespace

Step 3 : 复制备份ibd文件

shell> cp /xfs/backup/2012-10-17_11-29-20/test/testibd.ibd /xfs/mysql3321/test/ 

shell> chown mysql:mysql /xfs/mysql3321/test/testibd.ibd

Step 4 : 导入ibd文件

mysql> alter table testibd import tablespace

 

情况二:误删 table,表结构已经被drop了

这种情况稍复杂,不过恢复过程还是比较容易操作的。由于table被drop后的space id会留空因此备份文件的space id不会被占用。

我们只需要重建表结构,然后把ibdata中该表的space id还原,物理文件可以直接覆盖做恢复了。

Step 1 : 重建表

mysql> create table testibd (UserID int);

Step 2 : 关闭mysql服务(必须)

shell> service mysqld3321 stop

Step 3: 准备ibd文件  apply log

shell> innobackupex --apply-log --defaults-file=/usr/local/mysql3321/my.cnf  /xfs/backup/2012-10-17_11-29-20/

Step 4 : 备份现在的ibd文件(可选)

cp -a testibd.ibd testibd.bak

Step 5 : 复制备份ibd文件

shell> cp -a /xfs/backup/2012-10-17_11-29-20/test/testibd.ibd /xfs/mysql3321/test/ 

shell> chown mysql:mysql /xfs/mysql3321/test/testibd.ibd

Step 6 : 使用percona recovery tool 修改ibdata

shell> /root/install/percona-data-recovery-tool-for-innodb-0.5/ibdconnect -o /xfs/mysql3321/ibdata1 -f /xfs/mysql3321/test/testibd.ibd -d test -t testibd

输出结果
Initializing table definitions...Processing table: SYS_TABLES - total fields: 10 - nullable fields: 6 - minimum header size: 5 - minimum rec size: 21 - maximum rec size: 555Processing table: SYS_INDEXES - total fields: 9 - nullable fields: 5 - minimum header size: 5 - minimum rec size: 29 - maximum rec size: 165Setting SPACE=1 in SYS_TABLE for `test`.`testibd`Check if space id 1 is already usedPage_id: 8, next page_id: 4294967295Record position: 65Checking field lengths for a row (SYS_TABLES): OFFSETS: 16 8 50 3 2 0 0 0 0 0 Db/table: infimumSpace id: 1768842857 (0x696E6669)Next record at offset: 8DRecord position: 8DChecking field lengths for a row (SYS_TABLES): OFFSETS: 16 11 17 24 32 36 40 48 52 52 Db/table: SYS_FOREIGNSpace id: 0 (0x0)Next record at offset: D5Record position: D5Checking field lengths for a row (SYS_TABLES): OFFSETS: 16 16 22 29 37 41 45 53 57 57 Db/table: SYS_FOREIGN_COLSSpace id: 0 (0x0)Next record at offset: 122Record position: 122Checking field lengths for a row (SYS_TABLES): OFFSETS: 16 12 18 25 33 37 41 49 53 53 Db/table: test/testibdSpace id: 2 (0x2)Next record at offset: 74Space id 1 is not used in any of the records in SYS_TABLESPage_id: 8, next page_id: 4294967295Record position: 65Checking field lengths for a row (SYS_TABLES): OFFSETS: 16 8 50 3 2 0 0 0 0 0 Db/table: infimumSpace id: 1768842857 (0x696E6669)Next record at offset: 8DRecord position: 8DChecking field lengths for a row (SYS_TABLES): OFFSETS: 16 11 17 24 32 36 40 48 52 52 Db/table: SYS_FOREIGNSpace id: 0 (0x0)Next record at offset: D5Record position: D5Checking field lengths for a row (SYS_TABLES): OFFSETS: 16 16 22 29 37 41 45 53 57 57 Db/table: SYS_FOREIGN_COLSSpace id: 0 (0x0)Next record at offset: 122Record position: 122Checking field lengths for a row (SYS_TABLES): OFFSETS: 16 12 18 25 33 37 41 49 53 53 Db/table: test/testibdSpace id: 2 (0x2)Updating test/testibd (table_id 17) with id 0x01000000SYS_TABLES is updated successfullyInitializing table definitions...Processing table: SYS_TABLES - total fields: 10 - nullable fields: 6 - minimum header size: 5 - minimum rec size: 21 - maximum rec size: 555Processing table: SYS_INDEXES - total fields: 9 - nullable fields: 5 - minimum header size: 5 - minimum rec size: 29 - maximum rec size: 165Setting SPACE=1 in SYS_INDEXES for TABLE_ID = 17Page_id: 11, next page_id: 4294967295Record position: 65Checking field lengths for a row (SYS_INDEXES): OFFSETS: 15 8 50 7 2 0 0 0 0 TABLE_ID: 3798561113125514496SPACE: 1768842857Next record at offset: 8CRecord position: 8CChecking field lengths for a row (SYS_INDEXES): OFFSETS: 15 8 16 22 29 35 39 43 47 TABLE_ID: 11SPACE: 0Next record at offset: CERecord position: CEChecking field lengths for a row (SYS_INDEXES): OFFSETS: 15 8 16 22 29 36 40 44 48 TABLE_ID: 11SPACE: 0Next record at offset: 111Record position: 111Checking field lengths for a row (SYS_INDEXES): OFFSETS: 15 8 16 22 29 36 40 44 48 TABLE_ID: 11SPACE: 0Next record at offset: 154Record position: 154Checking field lengths for a row (SYS_INDEXES): OFFSETS: 15 8 16 22 29 35 39 43 47 TABLE_ID: 12SPACE: 0Next record at offset: 22CRecord position: 22CChecking field lengths for a row (SYS_INDEXES): OFFSETS: 15 8 16 22 29 44 48 52 56 TABLE_ID: 17SPACE: 2Updating SPACE(0x00000001 , 0x01000000) for TABLE_ID: 17sizeof(s)=4Next record at offset: 74SYS_INDEXES is updated successfully
Nach dem Login kopieren

 

Step 7 : 使用percona recovery tool 重新checksum ibdata

重复执行以下命令,直到程序没有输出为止。

shell> /root/install/percona-data-recovery-tool-for-innodb-0.5/innochecksum -f /xfs/mysql3321/ibdata1

输出结果
page 8 invalid (fails old style checksum)page 8: old style: calculated = 0xF4AD74CB; recorded = 0xEECB309Dfixing old checksum of page 8page 8 invalid (fails new style checksum)page 8: new style: calculated = 0x6F0C29B4; recorded = 0x3D02308Cfixing new checksum of page 8page 11 invalid (fails old style checksum)page 11: old style: calculated = 0x3908087C; recorded = 0xF9E8D30Cfixing old checksum of page 11page 11 invalid (fails new style checksum)page 11: new style: calculated = 0xB26CFD77; recorded = 0xDB25D39Dfixing new checksum of page 11
Nach dem Login kopieren

 

Step 8 : 启动mysql服务

shell> service mysqld3321 start

 

参考文档:

http://www.chriscalender.com/?p=28

http://www.mysqlperformanceblog.com/2011/05/13/connecting-orphaned-ibd-files/

http://blogs.innodb.com/wp/2012/04/innodb-transportable-tablespaces/

 

 

 

bitsCN.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie einen neuen Simulator im Lightning Simulator - So erstellen Sie einen neuen Simulator im Lightning Simulator So erstellen Sie einen neuen Simulator im Lightning Simulator - So erstellen Sie einen neuen Simulator im Lightning Simulator Mar 05, 2024 pm 03:04 PM

Kürzlich haben einige Benutzer, die gerade die Lightning-Simulator-Software heruntergeladen und kontaktiert haben, den Herausgeber gefragt, wie man einen neuen Simulator im Lightning-Simulator erstellt. Der folgende Inhalt zeigt die Methode zum Erstellen eines neuen Simulators im Lightning-Simulator . Finden Sie die Blitzsimulator-Software. Doppelklicken Sie, um den Thunderbolt-Mehrfachöffner zu öffnen. Klicken Sie auf Neu/Simulator kopieren. Klicken Sie auf Neuer Simulator. Sie können einen neuen Simulator bekommen. Suchen Sie die Lightning-Simulator-Software, doppelklicken Sie, um den Lightning-Multi-Opener zu öffnen, klicken Sie auf Neu/Simulator kopieren, klicken Sie auf Neuer Simulator, und Sie erhalten einen neuen Simulator.

So erstellen Sie ein neues Word-Dokument auf Ihrem Computer So erstellen Sie ein neues Word-Dokument auf Ihrem Computer Dec 27, 2023 pm 10:05 PM

Es gibt viele Möglichkeiten, ein neues Word-Dokument zu erstellen. Wir können auf den Desktop klicken und auf „Neues Doc-Dokument“ oder „Docx-Dokument“ klicken. Die spezifischen Methoden sind ähnlich. So erstellen Sie ein neues Word-Dokument mit einem Computer: win11: 1. Zuerst klicken wir mit der rechten Maustaste auf „Neu“. 2. Wählen Sie dann die Datei „docx oder doc“ aus. 3. Abschließend kann die Erstellung abgeschlossen werden. win10: 1. Wir klicken mit der rechten Maustaste und wählen „Neu“. 2. Wählen Sie anschließend eines der beiden Dokumente aus. 3. Schließlich ist die Erstellung abgeschlossen. win7: 1. Klicken Sie zunächst mit der rechten Maustaste und wählen Sie „Neu“. 2. Wählen Sie dann das Word-Dokument aus. 3. Abschließend kann die Neuanlage abgeschlossen werden.

Lösen Sie das Problem, dass es beim Rechtsklick von Win10 keine Option „Neu' gibt Lösen Sie das Problem, dass es beim Rechtsklick von Win10 keine Option „Neu' gibt Jan 05, 2024 am 09:45 AM

Bei der Verwendung des Win10-Systems stellen einige Freunde fest, dass es im Rechtsklickmenü keine neue Option gibt, wenn sie mit der rechten Maustaste auf den Desktop klicken. Tatsächlich müssen sie nur über die Registrierung eine Option hinzufügen, um mit der rechten Maustaste zu klicken und ein neues erstellen. Was tun, wenn bei einem Rechtsklick unter Windows 10 die Option „Neu“ nicht angezeigt wird: 1. Drücken Sie die Tastenkombination + Öffnen und Ausführen, geben Sie ein und klicken Sie auf „OK“, um den Registrierungseditor zu öffnen. 2. Erweitern Sie dann die Ordner:. 3. Suchen Sie dann den Ordner. Wenn kein solcher Ordner vorhanden ist, klicken Sie mit der rechten Maustaste auf den Ordner und benennen Sie ihn. 4. Nachdem wir die Datei im neuen Ordner geöffnet haben, ändern wir diese numerischen Daten in. 5. Starten Sie anschließend den Computer neu, um das Problem zu beheben.

So erstellen Sie eine graue Version eines neuen übergreifenden Volumes auf einer Win10-Festplatte So erstellen Sie eine graue Version eines neuen übergreifenden Volumes auf einer Win10-Festplatte Jul 02, 2023 am 08:13 AM

Was soll ich tun, wenn das neu erstellte übergreifende Volume auf der Win10-Festplatte ausgegraut ist? Manchmal gibt es auf unserer Festplatte mehrere ungenutzte Speicherplätze. Wir können sie zusammenführen und in einem logischen Volume ablegen, sodass der Speicherplatz auf mehreren Festplatten effizienter genutzt werden kann. Einige Internetnutzer sagten jedoch, dass ihr Win10-System beim Erstellen eines neuen übergreifenden Volumes Probleme hatte. Sie stellten fest, dass das neue übergreifende Volume auf der Festplatte nicht ausgegraut war. Wie erstelle ich ein neues übergreifendes Volume? Der folgende Editor zeigt Ihnen die richtige Methode zum Erstellen eines neuen zonenübergreifenden Volumes. Graue Lösungsschritte zum Erstellen eines übergreifenden Volumes auf einer Win10-Festplatte. Zunächst kann, wie in der Abbildung unten gezeigt, der Speicherplatz auf den beiden Festplatten dasselbe Volume nutzen und einfach ein übergreifendes Volume erstellt werden. Dann kann der Grund dafür, dass das übergreifende Volume nicht ausgegraut werden kann, folgende Faktoren sein: 1. Wenn es einen Bereich enthält

Wie implementiert man die Anweisung zum Anzeigen von Tabellendaten in MySQL? Wie implementiert man die Anweisung zum Anzeigen von Tabellendaten in MySQL? Nov 08, 2023 pm 01:40 PM

Titel: Anweisungen und spezifische Codebeispiele zum Anzeigen von Tabellendaten in MySQL MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem, das in Anwendungen aller Größen weit verbreitet ist. In MySQL ist das Anzeigen von Tabellendaten eine sehr grundlegende Operation. Im Folgenden wird anhand spezifischer Anweisungen und Codebeispiele erläutert, wie diese Operation implementiert wird. Zunächst stellen wir die Anweisungen und spezifischen Codebeispiele zum Anzeigen von Tabellendaten über das MySQL-Befehlszeilentool vor. Angenommen, wir haben eine Tabelle mit dem Namen „Mitarbeiter“, das Folgende ist der Pass

Detaillierte Methode zum Erstellen eines neuen Monatsberichts über Enterprise WeChat Detaillierte Methode zum Erstellen eines neuen Monatsberichts über Enterprise WeChat Mar 25, 2024 pm 05:36 PM

1. Öffnen Sie Enterprise WeChat. 2. Klicken Sie links auf die Symbolschaltfläche [App]. 3. Klicken Sie auf die Optionen [Bericht], [Neu], [Monatlicher Bericht]. 4. Dann sehen Sie, dass Sie die Arbeit dieses Monats usw. eingeben müssen. 5. Geben Sie den Inhalt der Arbeit dieses Monats ein. Sie können den Rest ausfüllen oder auch nicht, und klicken Sie auf die Schaltfläche [Senden]. 6. Abschließend können Sie die Details Ihres Monatsberichts einsehen.

Schritt-für-Schritt-Anleitung zum Erstellen von Ordnern auf dem Realme-Mobiltelefon Schritt-für-Schritt-Anleitung zum Erstellen von Ordnern auf dem Realme-Mobiltelefon Mar 23, 2024 pm 03:51 PM

Schritt-für-Schritt-Anleitung zum Erstellen von Ordnern auf Realme-Mobiltelefonen In unserem täglichen Leben verwenden wir unsere Telefone zum Speichern einer Vielzahl von Dateien, darunter Fotos, Videos, Dokumente und mehr. Mit der Zeit kann jedoch die Anzahl der Dateien auf Ihrem Telefon zunehmen, was dazu führen kann, dass der Speicher auf Ihrem Telefon nicht ausreicht oder die Verwaltung von Dateien erschwert wird. Um Dateien besser zu organisieren und die Effizienz der Handynutzung zu steigern, ist die Einrichtung von Handyordnern besonders wichtig geworden. Realme Mobile ist eine beliebte Smartphone-Marke mit einem leistungsstarken System und vielfältigen Funktionen. Durch das Erstellen von Ordnern auf Realme-Telefonen können Benutzer Dateien besser organisieren

Win11 neues Dokument-Tutorial Win11 neues Dokument-Tutorial Dec 30, 2023 pm 07:59 PM

In Win11 können wir Artikel oder Notizen hinzufügen, indem wir ein neues Dokument erstellen, aber einige Freunde wissen nicht, wie man in Win11 ein neues Dokument erstellt. Klicken Sie einfach mit der rechten Maustaste auf die leere Stelle. So erstellen Sie ein neues Dokument in Win11: 1. Klicken Sie mit der rechten Maustaste auf die leere Stelle des Desktops oder Explorers und wählen Sie „Neu“ 2. Wählen Sie dann „Textdokument“ 3. Nachdem die neue Erstellung abgeschlossen ist, können Sie Ihr neues Dokument sehen erstelltes Textdokument. 4. Wir können uns auch für die „Erstellung“ eines „doc/docx-Dokuments“ entscheiden. 5. Nachdem die Erstellung abgeschlossen ist, doppelklicken Sie auf das Dokument, um es zu öffnen.

See all articles