Datenbank-Wiederherstellung in MySQL
Erfahren Sie, wie man der verloren gegangenen oder gelöschten Datenbank von MySQL wiederherstellen kann. Wie kann man die beschädigten Tabellen der Datenbank MySQL mit Hilfe von myisamchk wiederherstellen.
Die Datenbank von MySQL wird standardmäßig auf dem Computer im Ordner auf der Festplatte С installiert:
C:\Program Files\MySQL\MySQL Server 5.7
Die Daten der Tabellen werden jedoch in einem anderen Ordner auf der Festplatte C des Computers gespeichert, und zwar auf:
C:\ProgramData\MySQL\MySQL Server 5.7\Data
Die Lage dieser Dateien ist im Menü Server Status der Anwendung MySQL Workbench, im Abschnitt Server Directories angegeben.
Im Bedarfsfall einer Wiederherstellung der Tabellen der Datenbank wird zwar der Ordner mit den Daten der bestimmten Datenbank und die Dateien, welche sich in diesem Ordner befinden, von Interesse sein.
- Dateien der Datenbanken von MySQL
- Wie kann man die Datenbank von MySQL wiederherstellen?
- Wiederherstellung der verlorenen oder gelöschten Datenbank von MySQL
- Wiederherstellung der beschädigten Tabellen der Datenbank von MySQL mit Hiulfe von myisamchk
- Fragen und Antworten
- Bemerkungen
Dateien der Datenbanken von MySQL
MySQL ist mit vielen Formaten der Dateien kompatibel, wie, z. B.: .sql, .arm, .cnf, .dbs, .ddl, .frm, .ibd, .ism, .mrg, .myd, .myi, .mysql, .opt, .phl, .sal, .sqr, .tmd, .arz, .ibz, .ibc, .qbquery, .rul. Aber dieser Artikel ist nicht darüber. Heute sind für uns nur dieselbe Dateien interessant, in welchen die Daten und die Tabelle der Datenbankgespeichert sind, nach deren Wiederherstellung der Benutzer imstande wird, die wichtigen Informationen rückgängig zu machen und deren Verlust in der Zukunft zu vermeiden.
Die Daten jeder Datenbank werden im Ordner mit derer Bezeichnung gespeichert und werden je nach dem Typ der Tabelle in den Dateien mit folgenden Erweiterungen gespeichert:
- db.opt – Datei, in der die Charakteristiken der Datenbank, welche bei ihrer Erstellung angegeben wurden, gespeichert sind;
- .frm – Datei der Struktur der Tabellen;
- .myd – Datei, in welcher die Daten der MyISAM-Tabelle gespeichert sind;
- .myi – Datei, in welcher die Indexe der MyISAM-Tabellen gespeichert werden;
- .ibd – Datei, in welcher die Daten und Indexe der InnoDB-Tabellen gespeichert sind.
Wie kann man die Datenbank von MySQL wiederherstellen?
Die Wiederherstellung der Datenbank von MySQL ist ein technisch nicht komplizierter Prozess, aber dieser hängt von vielen Bedingungen ab. Für die Benutzer von MySQL Workbench ist die Funktion von Export und Import/Wiederherstellung der Daten von Datenbanken vorgesehen.
Des Weiteren ist es auch möglich, mit Hilfe von mysqldump (was wir detailliert in einem unseren Artikel beschrieben haben) eine Sicherheitskopie zu erstellen und die Datenbank von MySQL wiederherzustellen.
Aber diese Funktionen gehören viel mehr zur Erstellung von Sicherheitskopien der Daten von MySQL mit Hilfe der installierten Tools. Für die fortgeschrittenen Benutzer und deren, die die Funktion der Datensicherung von MySQL zu geeigneter Zeit verwendet haben, wird auch das Verfahren der manuellen Erstellung von Kopien und der Wiederherstellung der Datenbanken, mittels der Vertauschung der oben beschriebenen Dateien der Struktur und der Daten der Tabellen interessant:
- Die Erstellung einer Kopie der Datenbanken der Tabellen von MySQL ist mittels eines Dateienkopierens der Struktur und der Daten (*.opt, *.frm, *.myd, *.myi для MyIsam; *.opt, *.frm, *.ibd для InnoDB) und ihrer Speicherung in einem anderen Ordner möglich.
- Die Wiederherstellung der Daten der Tabellen von MySQL ist mittels Vertauschung der früher kopierten Dateien der Struktur und der Daten in die Ordner der schon existierenden Datenbanken möglich (in unserem Fall sind das zwei Datenbanken: my_db und my_db2).
Wiederherstellung der verlorenen oder gelöschten Datenbank von MySQL
Falls Sie aus irgend-welchem Grund die Datenbank von MySQL gelöscht, das Windows neuinstalliert oder die Festplatte formatiert haben, dann kann man diese auf die oben beschriebene Weise, mittels Vertauschung der früher kopierten Dateien der Datenbank in den Ordner mit der Bezeichnung der Datenbank wiederherstellen:
C:\ProgramData\MySQL\MySQL Server 5.7\Data
Falls der Benutzer im Voraus keine Dateikopie der Datenbank erstellt hat, dann kann man diese mit Hilfe des Programms Hetman Partition Recovery wiederherstellen, woraufhin müssen diese in den erforderlichen Ordner auf der oben beschriebenen Weise verschoben werden.
Gehen Sie dafür folgendermaßen vor:
-
Starten Sie Hetman Partition Recovery und scannen Sie mit Hilfe dieses Programms die Festplatte, auf der die Datenbank von MySQL gespeichert wurde
-
Finden Sie und wechseln Sie mit Hilfe des Programms zum Ordner C:\ProgramData\MySQL\MySQL Server 5.7\Data,
oder suchen Sie die erforderlichen Dateien der Datenbank mit Hilfe der Suchfunktion:
Bitte, beachten Sie Folgendes: die Dateien mit Daten und Formaten der Tabellen werden eine Bezeichnung nicht der Datenbank, sondern der Tabelle haben.
-
Stellen Sie die Dateien der Datenbank wiederher
-
Verschieben Sie diese Dateien in den Ordner mit der Bezeichnung der Datenbank.
-
Nachdem Sie MySQL Workbench starten, werden die wiederherstellten Dateien der Tabellen, welche in den Ordner der Datenbank verschoben wurden, wieder verfügbar.
Auf solche Weise kann man auch die verloren gegangene Dateien des Speicherauszugs (*.sql) oder seinen Archiv (*.zip, *.gzip, *.bzip2) wiederherstellen.
Wiederherstellung der beschädigten Tabellen der Datenbank von MySQL mit Hiulfe von myisamchk
MyISAM-Tabelle der Datenbank von MySQL können infolge einer unerwarteten Unterbrechung des Schreibvorgangs oder Abschaltung des Computers, einer Funktionsstörung der Hardware oder Software sowie im Fall eines Versuchs, die vom Server verwendete Tabelle mit Hilfe von myisamchk auszuprüfen, beschädigt werden.
Infolge einer Beschädigung können die Dateien aus der Tabelle verschwinden oder unkorrekt angezeigt werden, am häufigsten konfrontieren jedoch die Benutzer infolge einer Beschädigung der Tabelle mit folgendem Fehler: «Incorrect key file for table: ‘Bezeichnung der Tabelle’. Try to repair it»
Um die beschädigte MyISAM-Tabellen wiederherzustellen, kann man den Befehl myisamchk zu verwenden.
Myisamchk funktioniert mittels Entstörung und Erstellung einer Kopie der .myd Datei mit dem weiteren Umtausch der beschädigten Datei. Deshalb, bevor Sie diesen Befehl verwenden, erstellen Sie im Voraus eine Reservekopie der Datei der Tabelle, welche wiederherzustellen ist.
So, um die beschädigte Tabelle wiederherzustellen, verwenden sie den Befehl:
myisamchk -r -q BEZEICHNUNG_DER TABELLE
wo, -r -q – der Modus der schnellen Wiederherstellung ist. In diesem Fall wird die Indexdatei ohne Veränderung des Datensatzes korrigiert. Falls die Datei alles Notwendige beinhaltet und die gelöschte Verbindung auf die richtige Position im Datensatz hinweist, dann wird die Tabelle infolge dieses Befehles korrigiert
Falls der vorherige Befehl zu keinem erforderlichen Ergebnis führt, dann erstellen Sie eine Reservekopie des Datensatzes und führen Sie den folgenden Befehl aus:
myisamchk -r BEZEICHNUNG_DER TABELLE
wo, -r – der Modus der Wiederherstellung ist. In diesem Fall werden von dem Datensatz die unkorrekten und verlorenen Einträge gelöscht und die Indexdatei wird aufs Neue erstellt (wie oben beschrieben).
Bitte, beachten Sie Folgendes. Falls Sie die Entstörung und die Wiederherstellung der Tabelle von der Befehlszeile zu erfüllen planen, dann ist es notwendig, den Server im Voraus zu stoppen. Es ist anzumerken, dass bei der Ausführung von mysqladmin shutdown vom Fernserver, wird mysqld noch einige Zeit nach dem Abschluss von mysqladmin funktionieren, bevor alle Anfragen nicht abgebrochen und alle Schlüssel auf der Festplatte abgelegt werden.
1. Power outages
2. Hardware failure
3. Software corruption
4. Human error
5. Malware or virus attack
6. Bad queries
7. File system corruption
8. Incompatible software upgrades
9. Accidental deletion of data
10. Improper shutdown of the database
1. Make sure to create backups of the database files regularly.
2. Use version control to track changes to the database files.
3. Store the database files in a secure location, such as a cloud storage provider.
4. Use a restrictive file system permission scheme to limit access to the database files.
5. Make sure to use a secure connection when accessing the database remotely.
6. Enable logging of all database operations, including deletions.
7. Utilize a monitoring system to alert you if any unexpected changes occur.
8. Implement an approval process for any database changes, including deletions.