Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 12936|Resposta: 0

[Fonte] Te ensinar a usar o Myisamchk para recuperação de falhas em MySQL

[Copiar link]
Publicado em 15/11/2017 13:23:05 | | |

"tbl_name.frm" arquivo de definição de tabela (tabela) "tbl_name. MYD "Arquivo de Dados" tbl_name. Arquivo índice de MYI"
Cada um desses 3 tipos de arquivo pode sofrer diferentes formas de corrupção, mas o problema ocorre mais frequentemente em arquivos de dados e arquivos de índice.
Myisamchk cria um ". MYD" (dados) para funcionar, ele funciona removendo o antigo ". MYD e renomeie o novo arquivo para o nome original para encerrar a fase de reparo. Se você usar --quick, myisamchk não cria um "temporary ". MYD", só assumindo". MYD" está correto e só cria um novo arquivo de índice, sem tocar". MYD", que é seguro porque myisamchk detecta automaticamente". MYD" está corrompido e, nesse caso, abandono do reparo. Você também pode dar ao meu isamchk duas — opções rápidas. Nesse caso, myisamchk não desiste de alguns erros (como teclas repetidas), mas tenta modificar o ". MYD" para resolvê-los. Normalmente, só é útil se você implementar uma correção normal com pouco espaço livre em disco, usando as duas opções rápidas. Nesse caso, você deveria pelo menos fazer um backup antes de rodar o myisamchk.
1. Como verificar os erros na tabela
Para verificar uma tabela, use o seguinte comando:
meu isamchk tbl_name
Isso detecta 99,99% de todos os erros. O que ele não consegue descobrir é que corrupção está envolvida apenas em arquivos de dados (o que é incomum). Se quiser verificar uma tabela, geralmente deve rodar myisamchk sem a opção ou usar qualquer uma das opções -s ou --silent.
myisamchk -e tbl_name
Ele faz uma verificação completa dos dados (-e significa "verificação estendida"). Ele faz uma verificação de leitura por chave em cada linha para confirmar que elas apontam para a linha correta. Isso pode levar muito tempo em uma mesa grande com muitas teclas. O MyISAMCHK geralmente para depois de encontrar o primeiro erro. Se quiser mais informações, pode adicionar a opção --verbose(-v). Isso faz com que o myisamchk continue até um máximo de 20 erros. No uso geral, um myisamchk simples (sem argumentos além do nome da tabela) é suficiente.
minha isamchk -e -i tbl_name
Como no comando anterior, mas a opção -i diz para myisamchk imprimir algumas estatísticas também.
2. Como consertar a mesa
O sintoma de uma tabela corrompida geralmente é uma quebra inesperada de consulta, e você pode ver, por exemplo, estes erros:
"tbl_name.frm" está bloqueado e não pode ser alterado.
Não consigo encontrar o arquivo "tbl_name. MYI"(Errcode :### )。
Obtenha o erro ### do processador de tabela (neste caso, o erro 135 é uma exceção).
Fim inesperado do arquivo.
Arquivos de registros foram destruídos.
Nesses casos, você deve consertar a mesa. O myisamchk geralmente detecta e corrige a maioria das coisas que dão errado.
O processo de reparo consiste em até 4 etapas, descritas abaixo. Antes de começar, você deve transferir permissões para o diretório do banco de dados e para os arquivos da checklist para garantir que eles sejam legíveis para usuários Unix que rodam MySQL (e para você, pois precisa acessar o arquivo que está verificando). Se ele se recusar a modificar o arquivo, eles também devem ser graváveis para você.
Fase 1: Confira sua tabela
Corre
meu isamchk *. MYI
ou (myisamchk -e *. Sei lá, se você tiver mais tempo). Use a opção -s (silêncio) para desabilitar informações desnecessárias.

O formato de arquivo usado pelo MySQL para armazenar dados foi extensivamente testado, mas sempre existem condições externas que podem causar corrupção das tabelas do banco de dados:
o processo mysqld é encerrado em uma única escrita; Um desligamento inesperado do computador (por exemplo, se o computador perder energia); Um erro de hardware.
Este capítulo descreve como verificar e lidar com corrupção de dados em um banco de dados MySQL. Se sua mesa está muito danificada, tente descobrir o motivo! Veja G.1 Depurando um servidor MySQL.
Ao realizar a recuperação de falhas, é importante entender que cada tabela em um banco de dados tbl_name corresponde aos 3 arquivos do diretório do banco de dados




Anterior:mysql #1062 – Entrada duplicada '1' para a chave 'PRIMÁRIA'
Próximo:O MySQL visualiza instruções SQL executadas em tempo real
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com