<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d10621347\x26blogName\x3dPrograma+Brasil\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dSILVER\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://programabrasil.blogspot.com/search\x26blogLocale\x3dpt_BR\x26v\x3d2\x26homepageUrl\x3dhttp://programabrasil.blogspot.com/\x26vt\x3d-3888665757378218666', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>
 

Especial phpConference Brazil

Procure uma matéria no blog

Matérias recentes

Entendendo Model-View-Control (MVC)
O dia em que o Brasil foi invadido
iPhone breaktrough?!?!
Palestra sobre CakePHP
Palestra sobre Segurança e PHP uma união possível
Palestra sobre Symfony Framework
Entrevista com Derick Rethans
ASP, JSP (Java) e PHP, quem é o melhor?
Web 2.0 o upgrade do ano!
Even off computer!!

Assine a newsletter programabrasil
- Todo vez que tiver um post você
receberá um email informando um
pouco mais do assunto discutido.
Powered by groups.yahoo.com

Apoio

idéias.ual Soluções WebBased
Breaking News Systems
Google analytics
Blogger.com
feedburner.com

Links

Blog do Arthur Furlan
Next Generation Center
 
http://www.programabrasil.blogspot.com/
Tecnologia, econômia e história, tudo discutido da maneira mais descomplicada possível com um foco mais realista para o mundo moderno.
ProgramaBrasil.blogspot.com
 

 
Quando o banco para o administrador entra em crise

Resenha:
Se “quando o banco para o país está em crise”, podemos dizer em TI que “quando o banco para o administrador entra em crise”! Descrevo minha última experiência com crash em uma base de dados MySQL. Se você é um administrador de banco de dados reze para não ler este artigo! ....


Dissertação:
O MySQL é um dos mais confiáveis SGDBs que já trabalhei, não que tenha tido muitas experiências com outros, mas até o momento ele não me deixou na mão, trabalho com bancos de dados com um certo tamanho (mais de 2GB e 20 bilhões de linhas em uma única tabela) e ao menos sempre que ele tem um curto circuito eu tenho uma maneira rápida de corrigir os problemas.

A primeira coisa que fiz foi um simples comando para otimizar as tabelas, como o comando optmize tables direto no shell do sgdb, mas ele continuava falando ...
error : Table '<>' is marked as crashed and last (automatic?) repair failed
... entrei em desespero! Minha primeira ação foi dar uma googleada, abrir uns 10 sites, todos ao mesmo tempo, dar uma rápida olhada no que era interessante, fechar as besteiras e começas a estudar o que me parecia útil até encontrar um comentário que poderia ser o princípio da salvação de minha lavoura. Fui um thread de um forum que discernia sobre um software, o vbulletin e um processo para resolver craches do banco.

Depois de estudar bem as dicas repassadas no thread, de navegar um pouco mais para encontrar os diversos tipos de erros que podem vir a ocorrer com a base de dados e compreender o funcionamento do mysqlcheck resolvi então ler por completo a página de manual do comando. Finalmente cheguei na seguinte seqüência de comandos ...

# desliguei o apache prevenindo novas conexões
httpd stop

# Esperei até que todos os processos fossem finalizados
mysqladmin proc stat -v -u usuario -psenha

# efetuei o flush de todas as informações
mysqladmin flush-tables -u usuario -psenha

# Rodei o comando para otimizar as tabelas
mysqlcheck -o --all-databases –user=usuario –password=senha

# este comando corrige os problemas.
mysqlcheck -F -r -v --all-databases –user=usuario –password=senha

# restartei o apache
httpd start

Vamos as explicações
As explicações obvias do porquê parei o apache e o porquê resolvi descarregar os buffers é básica, pergunte ao amigo/superior ao lado. Mas porquê optei por otimizar as tabelas antes de corrigi-las? Simples, a opção “-F” faz com que o mysqlchek proceda as correções apenas nas tabelas que não tenham sido marcadas como “fechadas apropriadamente”, não estudei o suficiente, entretanto acredito que desta forma o sistema irá marcar as tabelas menos utilizadas do sistema como estáveis e ao passar o segundo comando de correção este só atuará sobre tabelas problemáticas, dando então maior velocidade ao corrigir as tabelas. A segunda execução do mysqlcheck já temos a opção -v, para apresentar informações do que está acontecendo, evitando assim de entrarmos em desespero caso o relógio “aperte”, e por fim a opção “-r”, que ao que compreendi simplesmente resolveria todos os problemas possíveis de ocorrerem com a base de dados, segundo o que compreendi do manual, se a opção “-r” não solucionar o seu problema, larga tudo e dá uma passada na igreja para se benzer pois vai precisar de reza braba.

Ainda não tive tempo, porem vou colocar as três últimos comandos para rodar no cron todo sábado à noite, na espera de que tal processo diminua a possibilidade de ocorrência de um bug maior.

Minha alegria é chegar na empresa e descobrir que um servidor não está funcionando, meu cardiologista já disse que literalmente não conseguiria mais viver sem mim e agradece!

Marcadores:

0 Comentários:

Postar um comentário

<< Home

 

Responsável: Ricardo Striquer Soares

Técnico em processamento de dados com mais de 15 anos de experiência é autor de diversos softwares, tanto desktop quanto webbased. A cinco anos é empresário do ramo de tecnologia sendo um dos sócios da empresa idéias.ual (http://www.ideiaspontual.com/), o que lhe possibilitou participar e gerenciar vários projetos de desenvolvimento, instalação, configuração e integração de sistemas.
mail: ricardo at newyork dot com | Curriculum em PDF