Problemen met databasebeschadiging oplossen in Azure Database for MySQL - Flexibele server
Databasebeschadiging kan downtime veroorzaken voor uw toepassing. Het is ook essentieel om beschadigingsproblemen op tijd op te lossen om gegevensverlies te voorkomen. Wanneer er sprake is van beschadiging van de database, ziet u deze fout in uw serverlogboeken: InnoDB: Database page corruption on disk or a failed.
In dit artikel leert u hoe u problemen met beschadigde databases of tabellen kunt oplossen. Azure Database for MySQL Flexible Server maakt gebruik van de InnoDB-engine. Het bevat geautomatiseerde beschadigingscontrole- en reparatiebewerkingen. InnoDB controleert op beschadigde pagina's door controlesommen uit te voeren op elke pagina die wordt gelezen. Als er een checksum-discrepantie wordt gevonden, wordt het exemplaar van Azure Database for MySQL Flexible Server automatisch gestopt.
Probeer de volgende opties om uw problemen met databasebeschadiging snel te verhelpen.
De MySQL-server opnieuw opstarten
Meestal merkt u dat een database of tabel beschadigd is wanneer uw toepassing toegang heeft tot de tabel of database. InnoDB bevat een crashherstelmechanisme waarmee de meeste problemen kunnen worden opgelost wanneer de server opnieuw wordt opgestart. Door de server opnieuw op te starten, kan de server worden hersteld na een crash waardoor de database een slechte status heeft.
De dump- en herstelmethode gebruiken
U wordt aangeraden beschadigingsproblemen op te lossen met behulp van een dump- en herstelmethode . Deze methode omvat:
- Toegang tot de beschadigde tabel.
- Gebruik het hulpprogramma mysqldump om een logische back-up van de tabel te maken. De back-up behoudt de tabelstructuur en de gegevens erin.
- De tabel opnieuw laden in de database.
Een back-up maken van uw database of tabellen
Belangrijk
- Zorg ervoor dat u een firewallregel hebt geconfigureerd voor toegang tot de server vanaf uw clientcomputer. Zie Een firewallregel configureren op azure Database for MySQL enkele server en een firewallregel configureren in Azure Database for MySQL Flexible Server voor meer informatie.
- Gebruik de SSL-optie
--ssl-cert
voor mysqldump als SSL is ingeschakeld.
Maak een back-upbestand vanaf de opdrachtregel met behulp van mysqldump. Gebruik deze opdracht
$ mysqldump [--ssl-cert=/path/to/pem] -h [host] -u [uname] -p[pass] [dbname] > [backupfile.sql]
Parameterbeschrijvingen:
[ssl-cert=/path/to/pem]
: het pad naar het SSL-certificaat. Download het SSL-certificaat op uw clientcomputer en stel het pad erin in de opdracht in. Gebruik deze parameter niet als SSL is uitgeschakeld.[host]
: uw Azure Database for MySQL Flexible Server-exemplaar.[uname]
: de gebruikersnaam van de serverbeheerder.[pass]
: het wachtwoord voor de gebruiker met beheerdersrechten.[dbname]
: De naam van uw database.[backupfile.sql]
: de bestandsnaam van de back-up van de database.
Belangrijk
- Gebruik voor Azure Database for MySQL enkele server de indeling
admin-user@servername
om te vervangenmyserveradmin
in de volgende opdrachten. - Gebruik voor Azure Database for MySQL Flexible Server de indeling
admin-user
die u in de volgende opdrachten wilt vervangenmyserveradmin
.
Als een specifieke tabel beschadigd is, selecteert u specifieke tabellen in uw database om een back-up te maken:
$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb table1 table2 > testdb_tables_backup.sql
Als u een back-up wilt maken van een of meer databases, gebruikt u de --database
schakeloptie en vermeldt u de databasenamen, gescheiden door spaties:
$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql
Uw database of tabellen herstellen
De volgende stappen laten zien hoe u uw database of tabellen herstelt. Nadat u het back-upbestand hebt gemaakt, kunt u de tabellen of databases herstellen met behulp van het hulpprogramma mysql. Voer deze opdracht uit:
mysql --ssl-cert=</path/to/pem> -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]
Hier volgt een voorbeeld van het herstellen testdb
van een back-upbestand dat is gemaakt met mysqldump:
Belangrijk
- Gebruik voor Azure Database for MySQL enkele server de indeling
admin-user@servername
die u in de volgende opdracht wilt vervangenmyserveradmin
. - Gebruik voor Azure Database for MySQL Flexible Server de indeling
admin-user
die u in de volgende opdracht wilt vervangenmyserveradmin
.
$ mysql --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb < testdb_backup.sql