Come risolvere la corruzione del database del server MySQL?

Summary: Questo blog illustra le potenziali ragioni alla base del problema di corruzione del database del server MySQL e i passaggi per risolvere il problema. Questi passaggi includono il backup del database (db) prima di eseguire le operazioni di ripristino, l'uso di 'innodb_force_recovery', ecc.

Il blog spiegherà anche come il software di riparazione MySQL può aiutare quando non si riesce a riparare e ripristinare il database.

Il danneggiamento del database in MySQL Server, se non viene gestito correttamente o risolto in tempo, può portare a gravi interruzioni e perdite di dati.

Sfortunatamente, potreste anche non accorgervi che il vostro server MySQL è diventato corrotto, fino a quando il server non accede a una tabella corrotta o non viene spento.

Cosa causa l’interruzione del database nel server MySQL?

Di seguito sono riportati alcuni dei motivi più comuni alla base della corruzione del database del server MySQL:

Oltre a questi motivi, la corruzione del db dipende anche dall’utilizzo del motore di archiviazione MyISAM o InnoDB. Infatti, le tabelle MyISAM sono più suscettibili alla corruzione.

Cosa fare quando il database MySQL si corrompe?

Di solito, quando il database MySQL è danneggiato, si consiglia di ripristinarlo dall’ultima copia di backup nota. Ma se non si dispone di una copia di backup, l’esecuzione di operazioni di ripristino può aiutare a risolvere il danneggiamento del database MySQL.

Anche se il backup è disponibile, il tentativo di ripristino può essere un’opzione migliore in quanto richiede meno tempo per riportare il db online.

Passi di risoluzione dei problemi per risolvere l’interruzione del database MySQL

Cercate di risolvere il danneggiamento del database seguendo la sequenza elencata di seguito:

NOTA: Questi passaggi funzionano solo se il server di database MySQL è in funzione. Tuttavia, se il servizio MySQL smette di funzionare (si è bloccato) e non è possibile accedere al client a riga di comando MySQL, l’unica opzione rimasta è quella di ripristinare il database da un buon backup conosciuto. Se non esiste un backup, può essere utile utilizzare un software specializzato per la riparazione di MySQL.

Passo 1 – Backup del database

Prima di tentare di riparare il database danneggiato, assicurarsi di eseguire un backup dei file del database.

Anche se il db è già corrotto, il backup aiuta a minimizzare il rischio di ulteriori danni, che potrebbero essere causati da un’operazione di recupero.

Per eseguire il backup di tutti i file db, procedere come segue:

  1. Arrestare il server MySQL.
  2. Creare una copia di backup della cartella dati.

Passo 2 – Riportare il database in modalità di ripristino

NOTA: Se MySQL Server utilizza MyISAM come motore di archiviazione predefinito, passare al punto 3 per conoscere il processo di riparazione del db danneggiato.

Se InnoDB è il motore di archiviazione predefinito di MySQL Server, in alcuni casi di danneggiamento del database è sufficiente scaricare, eliminare e ricreare una o poche tabelle corrotte. A tale scopo, utilizzate l’istruzione CHECK TABLE per controllare le tabelle danneggiate.

Leggete questo: Come riparare le tabelle del database MySQL senza interruzioni?

Se la corruzione del database è grave, è probabile che si verifichino problemi durante l’avvio del server MySQL. In questo caso, forzare il ripristino di InnoDB può aiutare ad avviare MySQL.

Per utilizzare l’opzione ‘innodb_force_recovery‘, seguire i seguenti passaggi:

  1. Aprite il file di configurazione di MySQL e aggiungete la seguente riga di codice alla sezione [mysqld] prima di riavviare il server:

NOTA: Innodb_force_recovery è impostato a ‘0’ per impostazione predefinita. Tuttavia, per avviare InnoDB e scaricare le tabelle MySQL, è necessario impostare il valore a ‘1’ e aumentarlo in modo incrementale (da 1 a 6).

Tuttavia, si tenga presente che impostare il valore dell’opzione innodb_force_recovery a 4 o più aumenta le possibilità di corruzione dei dati.

[mysqld]

innodb_force_recovery=1

mysqldump -u [utente] -p[password] –all-databases > all_databases.sql

NOTA: Il file di dump in questo esempio si chiama all_databases.sql. Tuttavia, è possibile cambiarlo con quello che si desidera.

#innodb_force_recovery=…

 mysql> sorgente all_databases.sql

Leggete: I modi migliori per riparare la corruzione della tabella InnoDB in MySQL.

Passo 3 – Riparare le tabelle MyISAM usando myisamchk

Eseguire il comando myisamchk per riparare le tabelle MyISAM seguendo questi passaggi:

NOTA: Il comando myisamchk non funziona per le tabelle che utilizzano il motore InnoDB.

  1. Arrestare il server MySQL.
  2. Utilizzare il seguente comando per verificare le tabelle corrotte:

TABELLA

myisamchk *.MYI

myisamchk -recupera TABELLA

Fare riferimento a questo link per informazioni dettagliate su “Come riparare la tabella MyISAM usando myisamchk?”.

E se non funziona nulla?

Se i passaggi di risoluzione dei problemi non riescono a risolvere il problema, utilizzare il software Stellar Repair for MySQL per riparare il database corrotto e ripristinare tutti i suoi oggetti. Il software può riparare il database MySQL su sistemi Windows e Linux.

Alcuni motivi per cui si dovrebbe usare il software Stellar Repair for MySQL

Passi per riparare il database MySQL corrotto con il software Stellar Repair for MySQL

Prerequisiti:

Passo 1: Scaricare, installare e avviare il software Stellar Repair for MySQL.

Fase 2: nella finestra Seleziona cartella dati, selezionare la versione di MySQL in uso.

Figura 1 – Finestra di selezione della cartella dati

Fase 3: Viene visualizzata la finestra Seleziona database. Selezionare il database da riparare.

Figura 2 – Finestra di selezione del database

Fase 4: Fare clic su Ripara per avviare il processo di riparazione.

Fase 5: quando appare la finestra di dialogo Riparazione completata, fare clic su OK.

Fase 6: Il software visualizza un’anteprima del database riparato e dei suoi componenti recuperabili.

Figura 3 – Finestra di anteprima

Fase 7: Fare clic su Salva nel menu File per salvare il database riparato.

Figura 4 – Menu File

Fase 8: Nella finestra Salva database, scegliere il formato del file MySQL e fare clic su Salva.

Figura 5 – Finestra Salva database

Fase 9: quando appare il messaggio “Processo di salvataggio completato“, fare clic su OK.

Figura 6 – Casella di messaggio Salva completo

Il database riparato verrà salvato nella posizione selezionata.

Nota finale

Quando si tratta di risolvere il danneggiamento del database nel server MySQL, l’esecuzione dei passaggi di risoluzione dei problemi discussi in questo post può aiutare a risolvere il problema.

Tuttavia, se non si è esperti nel gestire il danneggiamento dei database o se si dispone di un db di grandi dimensioni (con gigabyte o terabyte di dati), è possibile che non si riesca a ripristinare il db danneggiato con le opzioni di riparazione e recupero. Inoltre, le opzioni di ripristino come innodb_force_recovery, impostate su un valore di 4 o superiore, possono causare il danneggiamento dei dati.

Un’alternativa migliore è quella di utilizzare un software di riparazione MySQL appositamente creato per riparare facilmente un database corrotto nel formato originale.

Related Post

Exit mobile version