Problemen met databasebeschadiging oplossen in Azure Database for MySQL - Flexibele server

VAN TOEPASSING OP: Azure Database for MySQL - Enkele server Azure Database for MySQL - Flexibele server

Belangrijk

Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar 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 Flexibele 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 de flexibele Azure Database for MySQL-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:

  1. Toegang tot de beschadigde tabel.
  2. Gebruik het hulpprogramma mysqldump om een logische back-up van de tabel te maken. De back-up behoudt de tabelstructuur en de gegevens erin.
  3. De tabel opnieuw laden in de database.

Een back-up maken van uw database of tabellen

Belangrijk

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 flexibele Azure Database for MySQL-serverexemplaren.
  • [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 vervangen myserveradmin in de volgende opdrachten.
  • Gebruik voor Flexibele Azure Database for MySQL-server de indeling admin-user om te vervangen myserveradmin in de volgende opdrachten.

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 vervangen myserveradmin .
  • Gebruik voor Flexibele Azure Database for MySQL-server de indeling admin-user om in de volgende opdracht te vervangen myserveradmin .
$ mysql --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb < testdb_backup.sql

Volgende stappen

Als het probleem niet wordt opgelost met de voorgaande stappen, kunt u altijd de hele server herstellen: