Daten sind eines der wichtigsten Güter in der modernen Gesellschaft. Viele Unternehmen und Privatpersonen verlassen sich auf Datenbanken, um ihre wertvollen Daten zu speichern und zu verwalten. Unabhängig davon, wie vorsichtig Sie sind, kann es dennoch passieren, dass Daten versehentlich gelöscht werden. Wenn Sie eine MySQL-Datenbank verwenden, sind Sie möglicherweise verwirrt und besorgt darüber, ob versehentlich gelöschte Daten wiederhergestellt werden können. Wenn Sie jedoch die richtigen Wiederherstellungsmethoden kennen, können Sie Ihre MySQL-Daten so schnell wie möglich wiederherstellen.
In diesem Artikel werden einige gängige MySQL-Datenwiederherstellungstechniken vorgestellt, die Ihnen bei der Wiederherstellung gelöschter Daten in unerwarteten Situationen helfen sollen.
Bevor Sie MySQL zur Datenwiederherstellung verwenden, müssen Sie einige grundlegende Begriffe und Konzepte verstehen.
In MySQL ist jeder Tabelle eine Datei zugeordnet. Diese Datei enthält die Daten und Metadaten der Tabelle. Wenn Sie den Befehl DELETE oder DROP ausführen, löscht MySQL die zugehörigen Dateien. Allerdings werden nicht alle Daten sofort dauerhaft gelöscht. MySQL markiert gelöschte Daten als freien Speicherplatz, sodass sie in Zukunft überschrieben werden können. Die Daten können noch wiederhergestellt werden, bis sie überschrieben werden.
Außerdem sollten Sie Folgendes beachten: Starten Sie MySQL nicht neu, wenn Ihre MySQL-Datenbank ausgeführt wird. Durch einen Neustart der MySQL-Instanz öffnet MySQL alle Tabellendateien für neue Daten. In diesem Fall verlieren Sie die Chance, die gelöschten Daten wiederherzustellen.
MySQL bietet eine Rollback-Funktion, mit der übermittelte INSERT-, UPDATE- und DELETE-Anweisungen rückgängig gemacht werden können. Rollback ist eine der sichersten und einfachsten Wiederherstellungsmethoden. Wenn Sie sich gerade in einer Debugging- und Testumgebung befinden oder kürzlich gelöschte Daten wiederherstellen müssen, können Sie es mit der Rollback-Funktion versuchen.
Bitte beachten Sie, dass Rollback nur für Transaktionstabellen funktioniert, d. h. Tabellen, deren Speicher-Engine InnoDB ist.
Um die MySQL-Rollback-Funktion zu verwenden, befolgen Sie diese Schritte:
Um die Rollback-Funktion zu verwenden, müssen Sie zunächst die Tabelle als transaktional festlegen. Um eine Transaktionstabelle einzurichten, verwenden Sie den folgenden Befehl:
ALTER TABLE table_name ENGINE = InnoDB;
Bevor Sie eine INSERT-, UPDATE- oder DELETE-Anweisung ausführen, müssen Sie eine Transaktion starten. Um eine Transaktion zu starten, verwenden Sie den folgenden Befehl:
START TRANSACTION;
Führen Sie eine INSERT-, UPDATE- oder DELETE-Anweisung aus. Wenn Sie alle Änderungen rückgängig machen möchten, führen Sie den folgenden Befehl aus:
ROLLBACK;
Wenn Sie alle Änderungen abgeschlossen haben und die Änderungen in der Datenbank speichern möchten, führen Sie den folgenden Befehl aus:
COMMIT;
Wenn Sie die Rollback-Funktion nicht verwenden können, können Sie versuchen, MySQLs Binlog zu verwenden, um eine Datenwiederherstellung zu erreichen. binlog ist das Binärprotokoll, das von MySQL zum Aufzeichnen von Datenbankänderungsvorgängen verwendet wird.
Beim Ausführen einer INSERT-, UPDATE- oder DELETE-Anweisung protokolliert MySQL die Änderungen im Binlog. Diese Änderungsprotokolle werden in chronologischer Reihenfolge aufgezeichnet und in binärer Form gespeichert. Um Binlog zur Datenwiederherstellung zu verwenden, müssen Sie den Tabellennamen der gelöschten Daten, die Löschzeit sowie den Namen und Speicherort der Binlog-Datei kennen.
Um Binlog zur Datenwiederherstellung zu verwenden, führen Sie bitte die folgenden Schritte aus:
Um die Binlog-Datei zum Zeitpunkt des Löschens zu finden, verwenden Sie den folgenden Befehl:
SHOW BINARY LOGS;
Dieser Befehl zeigt die an Namen und Namen aller Binlog-Dateien. Speicherort. Unter diesen Dateien müssen Sie die Binlog-Datei finden, die die versehentlich gelöschte Anweisung enthält.
Um Daten mithilfe von Binlog-Dateien wiederherzustellen, verwenden Sie den folgenden Befehl:
mysqlbinlog [binlog_file_name] | mysql -u [user_name] -p [database_name]
Dieser Befehl generiert SQL-Anweisungen für alle Änderungen in der Binlog-Datei und wendet diese Anweisungen dann auf die angegebene Datenbank an. Sie können vor der Ausführung dieses Befehls eine neue Datenbank erstellen, um das Überschreiben vorhandener Daten zu vermeiden.
Wenn Sie keine Datenwiederherstellung mithilfe von Rollback oder Binlog erreichen können, bietet MySQL auch andere Datenwiederherstellungstools. Diese Tools können den freien Speicherplatz nach gelöschten Daten durchsuchen und versuchen, diese in neuen Dateien oder Datenbanken wiederherzustellen.
Wenn Sie die MyISAM-Engine verwenden, können Sie das MyISAMchk-Tool verwenden, um beschädigte Tabellen zu überprüfen und zu reparieren. MyISAMchk kann gelöschte Datenblöcke finden und in neuen Dateien wiederherstellen. Um MyISAMchk zu verwenden, befolgen Sie diese Schritte:
cp [table_file_name] [path/to/new_table_file]
myisamchk --recover [path/to/new_table_file]
Die MySQL-Datenwiederherstellungstechnologie ist ein komplexer Prozess, der besondere Aufmerksamkeit und Vorsicht erfordert. Unabhängig davon, welche Methode Sie verwenden, stellen Sie sicher, dass Sie alle Ihre Daten sichern, bevor Sie Befehle ausführen. Rollback ist die sicherste Datenwiederherstellungsmethode, gilt jedoch nur für Transaktionstabellen. Wenn Sie kein Rollback verwenden können, können Sie versuchen, MySQLs Binlog für eine erweiterte Datenwiederherstellung zu verwenden. Wenn keine dieser Methoden funktioniert, können Sie die Verwendung des Datenwiederherstellungstools von MySQL oder eines Datenwiederherstellungstools eines Drittanbieters in Betracht ziehen.
Das obige ist der detaillierte Inhalt vonMySQL-Wiederherstellung versehentlich gelöschter Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!