Pular para o conteúdo principal

Recuperação MySQL Innodb após Problemas Elétricos e/ou Corrompimento de alguma base de Dados


Eu me deparei com um problema em meu servidor Zabbix, onde quando se tentava levantar o serviço do MySQL ele dava uma falha. Então deu uma olhada no arquivo de LOG e eis o que tinha:

------------------------------------------------------------------------------------------------------------
InnoDB: stored checksum 3103110567, prior-to-4.0.14-form stored checksum 438929502
InnoDB: Page lsn 66 2543532480, low 4 bytes of lsn at page end 2544351964
InnoDB: Page number (if stored to page already) 131080,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Page may be an index page where index id is 0 381
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 131080.
------------------------------------------------------------------------------------------------------------

Utilizar o programa mysqlcheck não era uma opção, pois ele precisa que o MySQL esteja iniciado e operacional.
Então utilizamos o parâmetro innodb_force_recovery, que possui os níveis de 0 a 6, sendo que 0 é o padrão e significa que não haverá uma recuperação forçada, e 6 pode ser considerado o mais agressivo, pois com este valor nenhuma recuperação é executada.
Coloquei esse parâmetro dentro do my.cnf no meu cado é um servidor linux no caminho /etc/mysql/my.cnf no grupo [mysqld]  innodb_force_recovery = "0 a 6".
A intenção deste parâmetro é que caso não haja um backup recente disponível e o MySQL possa ser iniciado e ter seus dados exportados. É uma opção para ser utilizada em último caso, contando com a sorte para que os dados possam ser exportados. No meu caso eu tinha backups, mas existem muitos casos que não possuem.
Fui então incrementando o valor do parâmetro progressivamente e tentando iniciar o MySQL, mas só consegui com o 6.

Depois de tudo isso passado, eu segui os seguintes passos:
1.   Parei o serviço do MySQL que tinha sido executado com o modo recovery.
2.   Comentei a linha do recovery = dentro do my.cnf
3.   Removi todo o conteúdo da pasta mysql que no meu caso o caminho era /var/lib/mysql.
4.   Reinstalei a base e os arquivos de controle com os seguintes comandos: mysql_installdb --user=mysql  (Isso vai recriar a base mysql).
5.   Levantei o serviço do mysql: servise mysql start. (isso vai criar o ibdata, iblogfile* (tem que aguardar um pouco).
6.   Pronto, agora criei as bases de dados novamente e restaurei os backups.

Referências: 
innodb_force_recovery: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html

mysqlcheck: http://dev.mysql.com/doc/refman/5.5/en/mysqlcheck.html


Comentários

+ Vistas

Porque Utilizar Gateway de Pagamentos em Sua Empresa

    Qualquer loja online ou física, independente do ramo de atuação, precisa oferecer ao cliente diversas formas de pagamento. E, claro, com um sistema de segurança altamente eficiente para a proteção de informações dos consumidores para que eles façam suas compras sem se preocupar com crimes eletrônicos ou vazamento de informações.     Para atender essa demanda com estabilidade, a melhor alternativa para qualquer empresa certamente é o   gateway de pagamento . Neste post você vai entender o por quê.  O que é um gateway de pagamento? Um gateway nada mais é do que o sistema utilizado pelos e-commerces (e lojas físicas) para efetuar a transmissão de dados entre os lojistas, bancos e clientes. Os gateways são usados pelas companhias para o processamento de pagamentos do cartão de crédito e Boletos Bancários. É como se fosse um terminal de cartão de crédito que pode ser facilmente encontrado em lojas de varejo e de comércio. Para que você compreenda melhor como funcionam os gateway

Sistemas Operacionais - 5º Período.

By: Ariadne Gomes. Exercícios fixação Sistemas Operacionais 1.      Defina os seguintes estados de um processo: Estado de execução: o processo está sendo executado em um processador. Estado de pronto: o processo poderia ser executado em um processador se houvesse algum disponível. Estado bloqueado: o processo está aguardando a ocorrência de algum evento para prosseguir. 2.      Liste abaixo serviços fundamentais aos processos prestados pelos Sistemas Operacionais. Criam processos, destroem processos, retomam processos, mudam a prioridade de um processo, bloqueiam processos, acordam(ativam) processos, despacham processos e capacitam os processos à comunicação interprocessos. 3.      O que significa Estados de um Processo? Significa que um processo passa por uma série de estados de processo distinto, são eles: Estado de execução: o processo está sendo executado em um processador. Estado de pronto: o processo poderia ser executado em um processador se houvess

Passo a Passo Implantação do SCRUM

Aprenda como Agilizar seu Projeto! A grande parte dos profissionais que tomam a decisão de implantar o Scrum em seus projetos normalmente tem a mesma dúvida: "Por onde devo começar para implantar o Scrum em meu Projeto?" Embora já dominem os fundamentos do método ágil eles se deparam com a resistência da cultura da empresa onde trabalham, ou mesmo precisam de ajuda para conseguir traçar um plano prático de implantação do Scrum. Este guia passo-a-passo foi elaborado para profissionais nestas condições, que apesar de dificuldades, estão prontos para o desafio de implantar o Scrum em seus projetos. Garantimos que se você aplicar os conceitos descritos neste guia em seus projetos, o sucesso vai ser apenas consequência do seu próprio esforço. Um abraço e Seja Ágil! Baixe aqui o E-book:  Guia_Scrum (Baixar)