quarta-feira, 13 de abril de 2011

Usando mysqlcheck para manutenção de tabelas e recuperação em caso de falhas

Desde o MySQL versão 3.23.38 podemos usar a ferramenta de reparos e verificação de tabelas MyISAM. A diferença entre o mysqlcheck e o myisamchk é que o mysqlcheck deve ser usado quando o servidor mysqld estiver em funcionamento, enquanto o myisamchk deve ser usado quando ele não estiver. O benefício do mysqlcheck é que você não precisa mais desligar o servidor mysqld para verificar ou reparar suas tabelas.

O mysqlcheck utiliza os comandos do servidor MySQL CHECK, REPAIR, ANALYZE e OPTIMIZE de um modo conveniente para o usuário.

Existem três modos de chamar o mysqlcheck:

shell> mysqlcheck [OPÇÕES] database [tabelas]
shell> mysqlcheck [OPÇÕES] --databases DB1 [DB2 DB3...]
shell> mysqlcheck [OPÇÕES] --all-databases

O mysqlcheck pode ser usado de uma maneira muito similar ao mysqldump quando o assunto for quais bancos de dados e tabelas devem ser escolhidas.

O mysqlcheck tem um recurso especial comparado aos outros clientes; o comportamento padrão, verificando as tabelas (-c) pode ser alterado renomeando o binário. Se você deseja ter uma ferramenta que repare as tabelas como procedimento padrão, você deve copiar o mysqlcheck para o disco com um outro nome, mysqlrepair, ou crie um link simbólico com o nome mysqlrepair. Se você chamar mysqlrepair agora, ele irá reparar as tabelas como seu procedimento padrão.

Os nomes que podem ser utilizados para alterar o comportamento padrão do mysqlcheck são:
mysqlrepair: A opção padrão será -r
mysqlanalyze: A opção padrão será -a
mysqloptimize: A opção padrão será -o
 
As opções disponíveis para o mysqlcheck estão listadas aqui. Verifique o que a sua versão suporta com o mysqlcheck --help.
  • -A, --all-databases
Verifica todos os bancos de dados. Isto é o mesmo que --databases com todos os bancos de dados selecionados.
  • -1, --all-in-1
Em vez de fazer uma consulta para cada tabela, execute todas as consultas separadamente para cada banco de dados. Nomes de tabelas estarão em uma lista separada por vírgula.
  • -a, --analyze
Análise as tabelas fornecidas.
  • --auto-repair
Se uma tabela checada está corrompida, ela é corrigida automaticamente. O reparo será feito depois que todas as tabelas tiverem sido checadas e forem detectadas tabelas corrompidas.
  • -#, --debug=...
Log de saída de depuração. Normalmente é 'd:t:o,filename'
  • --character-sets-dir=...
Diretório onde estão os conjuntos de caracteres.
  • -c, --check
Verifca erros em tabelas
  • -C, --check-only-changed
Verifica somente tabelas que foram alteradas desde a última conferência ou que não foram fechada corretamente.
  • --compress
Utilize compressão no protocolo server/cliente.
  • -?, --help
Exibe esta mensagem de ajuda e sai.
  • -B, --databases
Para verificar diversos bancos de dados. Perceba a diferença no uso; Neste caso nenhuma tabela será fornecida. Todos os argumentos são tratados como nomes de bancos de dados.
  • --default-character-set=...
Configura o conjunto de caracteres padrão.
  • -F, --fast
Verifica somente as tabelas que não foram fechadas corretamente
  • -f, --force
Continue mesmo se nós obtermos um erro de sql.
  • -e, --extended
Se você estiver utilizando esta opção com CHECK TABLE, irá garantir que a tabela está 100% consistente, mas leva bastante tempo.
Se você utilizar esta opção com REPAIR TABLE, ele irá executar um comando de reparos na tabela, que não só irá demorar muito tempo para executar, mas também pode produzir muitas linhas de lixo.
  • -h, --host=...
Conecta à máquina.
  • -m, --medium-check
Mais rápido que verificação extendida, mas encontra somente 99.99 de todos os erros. Deve resolver a maioria dos casos.
  • -o, --optimize
Otimizador de tabelas
  • -p, --password[=...]
Senha para usar ao conectar ao servidor. Se a senha não for fornecida será solicitada no terminal.
  • -P, --port=...
Número de porta para usar para conexão.
  • -q, --quick
Se esta opção for utilizada com CHECK TABLE, evita a busca de registros verificando links errados. Esta é a conferência mais rápida.
Se você estiver utilizando esta opção com REPAIR TABLE, ela tentará reparar somente a árvore de índices. Este é o método de reparo mais rápido para uma tabela.
  • -r, --repair
Pode corrigir quase tudo exceto chaves únicas que não são únicas.
  • -s, --silent
Exibe somente mensagens de erro.
  • -S, --socket=...
Arquivo socket para usar na conexão.
  • --tables
Sobrepõe a opção --databases (-B).
  • -u, --user=#
Usuário para o login, se não for o usuário atual.
  • -v, --verbose
Exibe informação sobre os vários estágios.
  • -V, --version
Exibe informação sobre a versão e sai.

0 comentários:

Postar um comentário