Mysql
 sql >> Database >  >> RDS >> Mysql

I modi migliori per riparare la tabella InnoDB danneggiata in MySQL

Riepilogo:  In questo post, discuteremo alcuni dei modi migliori per riparare una tabella InnoDB corrotta in MySQL, che potrebbe essere danneggiata a causa di guasti hardware, crash del server MySQL e altri motivi. Questi metodi comprendono una procedura graduale per riparare la tabella InnoDB danneggiata manualmente o utilizzando il software di riparazione MySQL.

A partire dalla versione MySQL 5.5, InnoDB viene usato come motore di archiviazione predefinito per tutte le nuove tabelle in un database MySQL. La cosa grandiosa di InnoDB è che supporta il ripristino da crash. Pertanto, non può essere danneggiato facilmente, ma quando lo fa, potrebbe verificarsi a causa di un arresto anomalo del server MySQL dopo un riavvio, un errore hardware o bug nella piattaforma sottostante, ecc.

Quando una tabella InnoDB viene danneggiata, i dati al suo interno diventano illeggibili e inaccessibili. Inoltre, un tentativo di leggere da una tabella danneggiata può causare il crash del server MySQL.

Come riparare la tabella InnoDB danneggiata in MySQL?

Nota: Prima di tentare di riparare la tabella InnoDB danneggiata, assicurati di eseguire prima il backup dei file del database MySQL.

Di seguito sono riportati i modi in cui è possibile riparare la tabella del database InnoDB corrotta

1. Correggi manualmente la tabella InnoDB danneggiata

Raramente dovrai riparare le tabelle InnoDB, poiché il motore di archiviazione aiuta a eseguire il ripristino da crash che può risolvere la maggior parte dei problemi una volta riavviato il server. Tuttavia, potrebbe verificarsi una situazione in cui sarà necessario ricostruire o riparare manualmente una tabella danneggiata. Ecco come puoi farlo:

Passaggio 1:riavvia il servizio MySQL

Riavvia il servizio MySQL, per verificare se puoi accedere al server, effettuando le seguenti operazioni:

  1. Apri la finestra Esegui facendo clic su "Windows+R" chiavi insieme.
  2. Digita msc e premi Invio .
  3. Dai Servizi finestra, cerca il servizio MySQL e fai clic con il pulsante destro del mouse su di esso, quindi fai clic su riavvia .

Se il server è accessibile, vai al passaggio 3. Ma se non si avvia o continua a bloccarsi, utilizza l'opzione innodb_force_recovery spiegata nel passaggio successivo.

Passaggio 2:forza il ripristino di InnoDB

Abilita innodb_force_recovery opzione nel file di configurazione MySQL my.cnf per riottenere l'accesso al database MySQL e alla sua tabella danneggiata. Per farlo, segui questi passaggi:

  • Apri il file my.cnf e aggiungi la seguente riga di codice nella sezione [mysqld]:
[mysqld]
Innodb_force_recovery=1

  • Salva e chiudi il file di configurazione.
  • Tentativo di riavviare il servizio MySQL di nuovo.

Passaggio 3:elimina la tabella corrotta

Una volta che puoi accedere alla tabella danneggiata, scarica i dati della tabella in un nuovo file usando il seguente comando mysqldump:

mysqldump –u user –p db_name table_name > single_dbtable_dump.sql

Nota: Aggiungi il nome della tabella separato da spazi bianchi nel comando precedente per eseguire il dump di più tabelle.

Ora, elimina la tabella danneggiata dal database:

mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Passaggio 4:ripristina il tavolo

Usa il file di dump appena creato per ripristinare la tabella dal file di dump (ad esempio, single_dbtable_dump):

mysql –u user –p < single_dbtable_dump.sql

Passaggio 5:riavvia MySQL in modalità normale

Quando la tabella danneggiata viene riparata, arresta il servizio MySQL e disabilita la modalità di ripristino di InnoDB immettendo la seguente riga nella sezione [mysqld]:

#innodb_force_recovery=...

Ora riavvia il servizio MySQL in modalità normale.

Nota: Se non hai utilizzato l'opzione innodb_force_recovery, fermati e riavvia il server in modalità normale.

2. Correggi la tabella InnoDB danneggiata utilizzando il software di riparazione MySQL

L'utilizzo di un valore "innodb_force_recovery" maggiore di 4 per riottenere l'accesso al database può causare il danneggiamento dei dati. Inoltre, in caso di grave danneggiamento, potresti non riuscire a riavviare il tuo server MySQL. Puoi superare queste limitazioni della riparazione manuale della tabella danneggiata del database MySQL utilizzando il software di riparazione MySQL specializzato come Stellar Repair per MySQL.

Il software può riparare e ripristinare le tabelle InnoDB del database MySQL mantenendo intatti i suoi dati. Inoltre, aiuta a recuperare le proprietà della tabella, le chiavi, i vincoli di relazione, ecc.

Questa utilità di riparazione del database MySQL aiuta a riparare le tabelle InnoDB e MyISAM create su sistemi basati su Windows e Linux.

I passaggi per riparare la tabella InnoDB danneggiata utilizzando il software sono i seguenti:

  1. Scarica, installa ed esegui gratuitamente Riparazione stellare per MySQL
  2. Dalla Seleziona cartella dati finestra di dialogo, seleziona la versione di MySQL che stai utilizzando, quindi fai clic su OK .
  3. Dal Seleziona database casella, scegli il database che desideri riparare, quindi fai clic su Ripara .
  4. Un'anteprima del database, della tabella e di altri componenti recuperabili riparati viene visualizzata nella finestra di anteprima del software.
  5. Seleziona le tabelle che desideri ripristinare, quindi fai clic su Salva nel menu File.
  6. Dal Salva database casella, scegli MySQL in Salva con nome e inserire le credenziali richieste per connettersi al server. Fai clic su Salva .

È possibile trovare il file di database riparato in una nuova cartella nella stessa posizione in cui è archiviato il database originale.

È possibile trovare il file di database riparato in una nuova cartella nella stessa posizione in cui è archiviato il database originale.

Conclusione

La corruzione nella tabella InnoDB può rendere i dati al suo interno illeggibili e, se non viene gestita nel tempo, può anche causare un arresto anomalo del server e tempi di inattività non pianificati. È possibile correggere la tabella InnoDB corrotta seguendo la procedura passo passo manuale. Tuttavia, il processo manuale per riparare le tabelle InnoDB può comportare la perdita di dati e potrebbe non fornire il risultato previsto.

Tuttavia, utilizzando uno strumento di riparazione del database MySQL come Stellar Repair for MySQL, puoi riparare le tabelle sul motore di archiviazione InnoDB e ripristinarlo al suo stato funzionale originale. Questa utilità di riparazione file aiuta a riparare il database MySQL creato su sistemi operativi Windows e Linux. Non solo può riparare le tabelle InnoDB, ma può anche correggere la corruzione nelle tabelle MyISAM del database MySQL.