Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beste Möglichkeiten, um beschädigte InnoDB-Tabellen in MySQL zu reparieren

Zusammenfassung:  In diesem Beitrag werden wir einige der besten Möglichkeiten zum Reparieren einer beschädigten InnoDB-Tabelle in MySQL besprechen, die aufgrund von Hardwarefehlern, MySQL Server-Abstürzen und anderen Gründen beschädigt werden kann. Diese Möglichkeiten umfassen ein schrittweises Verfahren zum manuellen Reparieren beschädigter InnoDB-Tabellen oder mithilfe von MySQL-Reparatursoftware.

Ab MySQL 5.5-Version wird InnoDB als Standardspeicher-Engine für alle neuen Tabellen in einer MySQL-Datenbank verwendet. Das Tolle an InnoDB ist, dass es die Wiederherstellung nach einem Absturz unterstützt. Daher kann es nicht leicht beschädigt werden, aber wenn dies der Fall ist, kann dies aufgrund eines Absturzes des MySQL-Servers nach einem Neustart, eines Hardwarefehlers oder von Fehlern in der zugrunde liegenden Plattform usw. passieren.

Wenn eine InnoDB-Tabelle beschädigt wird, werden die darin enthaltenen Daten unlesbar und unzugänglich. Und ein Versuch, aus einer beschädigten Tabelle zu lesen, kann den MySQL-Server zum Absturz bringen.

Wie repariert man eine beschädigte InnoDB-Tabelle in MySQL?

Hinweis: Bevor Sie versuchen, die beschädigte InnoDB-Tabelle zu reparieren, stellen Sie sicher, dass Sie zuerst Ihre MySQL-Datenbankdateien sichern.

Im Folgenden finden Sie die Möglichkeiten, wie Sie beschädigte InnoDB-Datenbanktabellen reparieren können

1. Beschädigte InnoDB-Tabelle manuell reparieren

Sie müssen InnoDB-Tabellen selten reparieren, da die Speicher-Engine bei der Wiederherstellung nach einem Absturz hilft, die die meisten Probleme beheben kann, sobald der Server neu gestartet wird. Es kann jedoch vorkommen, dass Sie eine beschädigte Tabelle manuell neu erstellen oder reparieren müssen. So geht's:

Schritt 1:Starten Sie den MySQL-Dienst neu

Starten Sie den MySQL-Dienst neu, um zu prüfen, ob Sie auf den Server zugreifen können, indem Sie Folgendes ausführen:

  1. Öffnen Sie das Ausführungsfenster, indem Sie auf „Windows+R“ klicken Tasten zusammen.
  2. Geben Sie msc ein und drücken Sie Enter .
  3. Aus den Diensten Fenster, suchen Sie nach MySQL Service und klicken Sie mit der rechten Maustaste darauf und klicken Sie dann auf Neu starten .

Wenn auf den Server zugegriffen werden kann, fahren Sie mit Schritt 3 fort. Wenn er jedoch nicht startet oder weiterhin abstürzt, verwenden Sie die im nächsten Schritt erläuterte Option innodb_force_recovery.

Schritt 2:InnoDB-Wiederherstellung erzwingen

Aktivieren Sie innodb_force_recovery Option in der MySQL-Konfigurationsdatei my.cnf, um wieder Zugriff auf die MySQL-Datenbank und ihre beschädigte Tabelle zu erhalten. Gehen Sie dazu folgendermaßen vor:

  • Öffnen Sie die Datei my.cnf und fügen Sie die folgende Codezeile in den Abschnitt [mysqld] ein:
[mysqld]
Innodb_force_recovery=1

  • Speichern und schließen Sie die Konfigurationsdatei.
  • Versuchen Sie erneut, den MySQL-Dienst neu zu starten.

Schritt 3:Beschädigten Tisch löschen

Sobald Sie auf die beschädigte Tabelle zugreifen können, sichern Sie die Tabellendaten mit dem folgenden mysqldump-Befehl in einer neuen Datei:

mysqldump –u user –p db_name table_name > single_dbtable_dump.sql

Hinweis: Fügen Sie den durch Leerzeichen getrennten Tabellennamen im obigen Befehl hinzu, um mehrere Tabellen zu sichern.

Löschen Sie nun die beschädigte Tabelle aus der Datenbank:

mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Schritt 4:Stellen Sie die Tabelle wieder her

Verwenden Sie die neu erstellte Dump-Datei, um die Tabelle aus der Dump-Datei (d. h. single_dbtable_dump) wiederherzustellen:

mysql –u user –p < single_dbtable_dump.sql

Schritt 5:Starten Sie MySQL im normalen Modus neu

Wenn die beschädigte Tabelle repariert ist, stoppen Sie den MySQL-Dienst und deaktivieren Sie den InnoDB-Wiederherstellungsmodus, indem Sie die folgende Zeile in den Abschnitt [mysqld] eingeben:

#innodb_force_recovery=...

Starten Sie nun den MySQL-Dienst im normalen Modus neu.

Hinweis: Wenn Sie die Option innodb_force_recovery nicht verwendet haben, halten Sie den Server einfach an und starten Sie ihn im normalen Modus neu.

2. Beschädigte InnoDB-Tabelle mit MySQL-Reparatursoftware reparieren

Die Verwendung eines „innodb_force_recovery“-Werts größer als 4, um wieder Zugriff auf die Datenbank zu erhalten, kann zu Datenbeschädigung führen. Außerdem können Sie in Fällen einer schweren Beschädigung Ihren MySQL-Server möglicherweise nicht neu starten. Sie können diese Einschränkungen bei der manuellen Reparatur der beschädigten Tabelle der MySQL-Datenbank überwinden, indem Sie eine spezielle MySQL-Reparatursoftware verwenden wie Stellar Repair for MySQL.

Die Software kann InnoDB-Tabellen der MySQL-Datenbank reparieren und wiederherstellen, während ihre Daten intakt bleiben. Außerdem hilft es bei der Wiederherstellung von Tabelleneigenschaften, Schlüsseln, Beziehungseinschränkungen usw.

Dieses Dienstprogramm zur Reparatur von MySQL-Datenbanken hilft bei der Reparatur von InnoDB- und MyISAM-Tabellen, die auf Windows- und Linux-basierten Systemen erstellt wurden.

Schritte zum Reparieren beschädigter InnoDB-Tabellen mithilfe der Software sind wie folgt:

  1. Kostenloser Download, Installation und Ausführung von Stellar Repair for MySQL
  2. Aus dem Datenordner auswählen Wählen Sie im Dialogfeld die von Ihnen verwendete MySQL-Version aus und klicken Sie dann auf OK .
  3. Aus der Auswahldatenbank Wählen Sie im Feld die Datenbank aus, die Sie reparieren möchten, und klicken Sie dann auf Reparieren .
  4. Eine Vorschau der reparierten Datenbank, Tabelle und anderer wiederherstellbarer Komponenten wird im Softwarevorschaufenster angezeigt.
  5. Wählen Sie die Tabelle(n) aus, die Sie wiederherstellen möchten, und klicken Sie dann im Menü "Datei" auf "Speichern".
  6. Aus der Speicherdatenbank Wählen Sie im Feld MySQL aus unter Speichern unter , und geben Sie die Anmeldeinformationen ein, die für die Verbindung zum Server erforderlich sind. Klicken Sie auf Speichern .

Sie finden die reparierte Datenbankdatei in einem neuen Ordner am selben Ort, an dem Ihre ursprüngliche Datenbank gespeichert ist.

Sie finden die reparierte Datenbankdatei in einem neuen Ordner am selben Ort, an dem Ihre ursprüngliche Datenbank gespeichert ist.

Schlussfolgerung

Eine Beschädigung der InnoDB-Tabelle kann die darin enthaltenen Daten unlesbar machen, und wenn sie nicht rechtzeitig behandelt wird, kann sie sogar zu einem Serverabsturz und ungeplanten Ausfallzeiten führen. Sie können die beschädigte InnoDB-Tabelle reparieren, indem Sie dem manuellen schrittweisen Verfahren folgen. Der manuelle Prozess zur Reparatur von InnoDB-Tabellen kann jedoch zu Datenverlust führen und möglicherweise nicht das erwartete Ergebnis liefern.

Wenn Sie jedoch ein Reparaturtool für MySQL-Datenbanken wie Stellar Repair for MySQL verwenden, können Sie Tabellen auf der InnoDB-Speicher-Engine reparieren und sie in ihren ursprünglichen Funktionszustand zurückversetzen. Dieses Dienstprogramm zur Dateireparatur hilft bei der Reparatur von MySQL-Datenbanken, die sowohl unter Windows als auch unter Linux erstellt wurden. Es kann nicht nur InnoDB-Tabellen reparieren, sondern auch Beschädigungen in MyISAM-Tabellen der MySQL-Datenbank beheben.