Problembehandlung bei Datenbankbeschädigungen in Der Azure-Datenbank für MySQL – Flexibler Server

GILT FÜR: Azure Database for MySQL – Single Server Azure Database for MySQL – Flexible Server

Wichtig

Azure Database for MySQL single server is on the retirement path. Es wird dringend empfohlen, ein Upgrade auf azure Database for MySQL flexiblen Server durchzuführen. Weitere Informationen zum Migrieren zu Azure Database for MySQL flexible Server finden Sie unter Was geschieht mit Azure Database for MySQL Single Server?

Datenbankbeschädigungen können eine Downtime Ihrer Anwendung verursachen. Auch um Datenverluste zu vermeiden, ist es wichtig, Beschädigungsprobleme rechtzeitig zu beheben. Wenn datenbankbeschädigung auftritt, wird dieser Fehler in Ihren Serverprotokollen angezeigt: InnoDB: Database page corruption on disk or a failed.

In diesem Artikel erfahren Sie, wie Sie Datenbank- oder Tabellenbeschädigungsprobleme beheben. Azure Database for MySQL flexible Server verwendet das InnoDB-Modul. Sie enthält automatisierte Überprüfungs- und Reparaturvorgänge. InnoDB wendet auf jede gelesene Seite Prüfsummen an, um beschädigte Seiten zu ermitteln. Wenn eine Prüfsummenabweichung gefunden wird, wird die Azure-Datenbank für die flexible Serverinstanz von MySQL automatisch beendet.

Verwenden Sie die folgenden Optionen, um Datenbankbeschädigungs-Probleme schnell zu beheben.

Neustarten des MySQL-Servers

In der Regel stellen Sie fest, dass eine Datenbank oder Tabelle beschädigt ist, wenn Ihre Anwendung auf die Datenbank oder Tabelle zugreift. InnoDB bietet einen Mechanismus zur Wiederherstellung nach einem Absturz, der die meisten Probleme beheben kann, wenn der Server neu gestartet wird. Das Neustarten des Servers kann dem Server bei der Wiederherstellung eines Absturzes helfen, der dazu führte, dass die Datenbank in einem fehlerhaften Zustand war.

Verwenden der Sicherungs- und Wiederherstellungsmethode

Sie sollten Beschädigungsprobleme mit einer Sicherungs- und Wiederherstellungsmethode lösen. Diese Methode umfasst Folgendes:

  1. Zugreifen auf die beschädigte Tabelle.
  2. Verwenden des mysqldump-Hilfsprogramms, um eine logische Sicherung der Tabelle zu erstellen. Bei der Sicherung werden die Tabellenstruktur und die darin enthaltenen Daten beibehalten.
  3. Erneutes Laden der Tabelle in die Datenbank.

Sichern der Datenbank oder Tabellen

Wichtig

Erstellen Sie eine Sicherungsdatei über die Befehlszeile mit „mysqldump“. Verwenden Sie diesen Befehl:

$ mysqldump [--ssl-cert=/path/to/pem] -h [host] -u [uname] -p[pass] [dbname] > [backupfile.sql]

Parameterbeschreibungen:

  • [ssl-cert=/path/to/pem]: Der Pfad zum SSL-Zertifikat. Laden Sie das SSL-Zertifikat auf Ihren Clientcomputer herunter, und geben Sie im Befehl den Pfad darin an. Verwenden Sie diesen Parameter nicht, wenn SSL deaktiviert ist.
  • [host]: Ihre Azure-Datenbank für mySQL flexible Serverinstanz.
  • [uname]: Ihr Serveradministrator-Benutzername.
  • [pass]: Das Kennwort für Ihren Administratorbenutzer.
  • [dbname]: Der Name Ihrer Datenbank.
  • [backupfile.sql]: Der Dateiname der Datenbanksicherung.

Wichtig

  • Verwenden Sie für Azure Database for MySQL single server das Format admin-user@servername , um in den folgenden Befehlen zu ersetzen myserveradmin .
  • Verwenden Sie für den flexiblen Azure-Datenbankserver für MySQL das Format admin-user , um in den folgenden Befehlen zu ersetzen myserveradmin .

Wenn eine bestimmte Tabelle beschädigt ist, wählen Sie bestimmte Tabellen in Ihrer Datenbank zur Sicherung aus:

$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb table1 table2 > testdb_tables_backup.sql

Um eine oder mehrere Datenbanken zu sichern, verwenden Sie den Schalter --database, und listen Sie die Datenbanknamen durch Leerzeichen getrennt auf:

$ mysqldump --ssl-cert=</path/to/pem>  -h mydemoserver.mysql.database.azure.com -u myserveradmin -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Wiederherstellen der Datenbank oder Tabellen

Die folgenden Schritte zeigen Ihnen, wie Sie Ihre Datenbank oder Tabellen wiederherstellen können. Nachdem Sie die Sicherungsdatei erstellt haben, können Sie die Tabellen oder Datenbanken mithilfe des mysql-Hilfsprogramms wiederherstellen. Führen Sie den folgenden Befehl aus:

mysql  --ssl-cert=</path/to/pem> -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Hier folgt ein Beispiel für die Wiederherstellung von testdb aus einer Sicherungsdatei, die mit „mysqldump“ erstellt wurde:

Wichtig

  • Verwenden Sie für Azure Database for MySQL single server das Format admin-user@servername , um es im folgenden Befehl zu ersetzen myserveradmin .
  • Verwenden Sie für den flexiblen Azure-Datenbankserver für MySQL das Format admin-user , um es im folgenden Befehl zu ersetzen myserveradmin .
$ mysql --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb < testdb_backup.sql

Nächste Schritte

Wenn die oben genannten Schritte nicht zur Lösung des Problems beitragen, können Sie jederzeit den gesamten Server wiederherstellen: