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

La tabella MySQL è contrassegnata come bloccata

Le tabelle MyISAM sono molto facili da mandare in crash. Ci sono informazioni di intestazione in ogni tabella che tiene traccia di quanti handle di file aperti ha una tabella MyISAM.

Se mysqld si arresta in modo anomalo, qualsiasi tabella MyISAM con handle di file aperti non ha mai avuto l'opportunità di diminuire il conteggio degli handle di file alla chiusura di ciascun handle di file. Pertanto, se un nuovo handle di file apre una tabella MyISAM (file .MYD) e mysqld rileva una mancata corrispondenza tra il numero di handle di file che una tabella MyISAM ritiene essere aperti e il numero di handle di file effettivamente aperti dalla tabella MyISAM, la tabella è dichiarato bloccato.

Esistono quattro (4) metodi per gestire questo problema:

METODO N. 1:Imposta la riparazione automatica MyISAM

Vedi il mio post https://dba.stackexchange.com/a/15079/877 su come configurarlo al riavvio di MySQL (15 marzo 2012)

METODO #2:usa InnoDB invece di MyISAM

InnoDB ha il ripristino da crash integrato nell'inizializzazione di Storage Engine. MyISAM non

METODO #3:Usa Aria invece di MyISAM

Aria è il sostituto drop-in di MariaDB per MyISAM. È dotato di meccanismi di ripristino da crash per singole tabelle.

METODO #4:non uccidere -9 su mysqld

Se mysqld si arresta in modo anomalo, deliberatamente o involontariamente, le informazioni di intestazione per tutte le tabelle MyISAM aperte le porteranno in uno stato di crash. Evita di dover uccidere manualmente mysqld.