Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A tabela MySQL está marcada como travada


As tabelas MyISAM são muito fáceis de travar. Há informações de cabeçalho em cada tabela que mantém o controle de quantos handles de arquivo aberto uma tabela MyISAM possui.

Se o mysqld travar, qualquer tabela MyISAM que tenha identificadores de arquivo abertos para ela nunca teve a oportunidade de diminuir a contagem de identificadores de arquivo a cada fechamento de identificador de arquivo. Assim, se um novo handle de arquivo abre uma tabela MyISAM (arquivo .MYD) e o mysqld descobre uma incompatibilidade entre o número de handles de arquivo que uma tabela MyISAM acredita estar aberta e o número de handles de arquivo que a tabela MyISAM realmente tem abertos, a tabela é declarado caiu.

Existem quatro (4) métodos para lidar com isso:

MÉTODO #1:Configure o reparo automático do MyISAM


Veja minha postagem https://dba.stackexchange.com/a/15079/877 sobre como configurar isso após uma reinicialização do MySQL (15 de março de 2012)

MÉTODO #2:Use InnoDB em vez de MyISAM


O InnoDB tem recuperação de falhas integrada na inicialização do Storage Engine. MyISAM não

MÉTODO #3:Use Aria em vez de MyISAM


Aria é o substituto do MariaDB para o MyISAM. Possui mecanismos de recuperação de falhas para tabelas individuais.

MÉTODO #4:Não mate -9 no mysqld


Se o mysqld travar, deliberada ou involuntariamente, as informações do cabeçalho de todas as tabelas MyISAM abertas as colocarão em um estado travado. Evite ter que matar manualmente o mysqld.