Adatbázis sérülésének elhárítása az Azure Database for MySQL-ben – rugalmas kiszolgáló
A következőkre vonatkozik: Azure Database for MySQL – Egykiszolgálós Azure Database for MySQL – Rugalmas kiszolgáló
Fontos
Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?
Az adatbázis sérülése állásidőt okozhat az alkalmazás számára. Az adatvesztés elkerülése érdekében a sérülési problémák időben történő megoldása is kritikus fontosságú. Adatbázis-sérülés esetén ez a hiba jelenik meg a kiszolgálónaplókban: InnoDB: Database page corruption on disk or a failed.
Ebből a cikkből megtudhatja, hogyan oldhatja meg az adatbázis- vagy táblasérülési problémákat. A rugalmas Azure Database for MySQL-kiszolgáló az InnoDB motort használja. Automatizált sérülésellenőrzési és javítási műveleteket tartalmaz. Az InnoDB úgy ellenőrzi a sérült oldalakat, hogy minden beolvasott oldalon ellenőrzőösszegeket futtat. Ha ellenőrzőösszeg-eltérést talál, automatikusan leállítja a rugalmas Azure Database for MySQL-kiszolgálópéldányt.
Az adatbázis sérülésével kapcsolatos problémák gyors megoldásához próbálja ki az alábbi lehetőségeket.
Indítsa újra a MySQL-kiszolgálót
Általában azt tapasztalja, hogy egy adatbázis vagy tábla sérült, amikor az alkalmazás hozzáfér a táblához vagy az adatbázishoz. Az InnoDB egy összeomlási helyreállítási mechanizmussal rendelkezik, amely a kiszolgáló újraindítása során a legtöbb problémát meg tudja oldani. Így a kiszolgáló újraindítása segíthet a kiszolgálónak helyreállítani az adatbázis rossz állapotát okozó összeomlást.
A memóriakép és a visszaállítási módszer használata
Javasoljuk, hogy memóriakép- és visszaállítási módszerrel oldja meg a sérülési problémákat. Ez a módszer a következőket foglalja magában:
- Hozzáférés a sérült táblához.
- A mysqldump segédprogrammal logikai biztonsági másolatot készíthet a tábláról. A biztonsági mentés megőrzi a táblastruktúrát és a benne lévő adatokat.
- A tábla újratöltése az adatbázisba.
Adatbázis vagy táblák biztonsági mentése
Fontos
- Győződjön meg arról, hogy tűzfalszabályt konfigurált a kiszolgáló ügyfélszámítógépről való eléréséhez. További információ: Tűzfalszabály konfigurálása önálló Azure Database for MySQL-kiszolgálón , valamint tűzfalszabály konfigurálása rugalmas Azure Database for MySQL-kiszolgálón.
- Ha engedélyezve van az SSL, használja a mysqldump SSL-beállítását
--ssl-cert
.
Hozzon létre egy biztonsági mentési fájlt a parancssorból a mysqldump használatával. Használja a következő parancsot:
$ mysqldump [--ssl-cert=/path/to/pem] -h [host] -u [uname] -p[pass] [dbname] > [backupfile.sql]
Paraméterleírások:
[ssl-cert=/path/to/pem]
: Az SSL-tanúsítvány elérési útja. Töltse le az SSL-tanúsítványt az ügyfélszámítógépen, és állítsa be az elérési utat a parancsban. Ne használja ezt a paramétert, ha az SSL le van tiltva.[host]
: Az Azure Database for MySQL rugalmas kiszolgálópéldánya.[uname]
: A kiszolgáló rendszergazdai felhasználóneve.[pass]
: A rendszergazdai felhasználó jelszava.[dbname]
: Az adatbázis neve.[backupfile.sql]
: Az adatbázis biztonsági mentésének fájlneve.
Fontos
- Az önálló Azure Database for MySQL-kiszolgáló esetében a formátumot
admin-user@servername
használva cserélje lemyserveradmin
a következő parancsokat. - Rugalmas Azure Database for MySQL-kiszolgáló esetén a formátumot
admin-user
használva cserélje lemyserveradmin
a következő parancsokat.
Ha egy adott tábla sérült, válassza ki az adatbázis adott tábláinak biztonsági mentését:
$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb table1 table2 > testdb_tables_backup.sql
Egy vagy több adatbázis biztonsági mentéséhez használja a kapcsolót --database
, és sorolja fel az adatbázisneveket szóközök szerint elválasztva:
$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql
Adatbázis vagy táblák visszaállítása
Az alábbi lépések bemutatják, hogyan állíthatja vissza az adatbázist vagy a táblákat. A biztonsági mentési fájl létrehozása után a mysql segédprogrammal visszaállíthatja a táblákat vagy adatbázisokat. Futtassa ezt a parancsot:
mysql --ssl-cert=</path/to/pem> -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]
Íme egy példa, amely a mysqldump használatával létrehozott biztonsági mentési fájlból áll vissza testdb
:
Fontos
- Önálló Azure Database for MySQL-kiszolgáló esetén a következő parancsban a formátumot
admin-user@servername
kell használnimyserveradmin
. - Rugalmas Azure Database for MySQL-kiszolgáló esetén a formátumot
admin-user
használva cserélje lemyserveradmin
a következő parancsot.
$ mysql --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb < testdb_backup.sql
További lépések
Ha az előző lépések nem oldják meg a problémát, bármikor visszaállíthatja a teljes kiszolgálót: