Pimp My Database - Parte 03

 

Nesta terceira parte do artigo continuo relatando os detalhes de uma consultoria de banco de dados que prestei. Na primeira parte descrevi rapidamente alguns detalhes do ambiente. Na segunda parte demonstrei algumas atitudes tomadas para ‘consertar’ os principais problemas. Nesta terceira e última parte cubro as atitudes tomadas em relação à disponibilidade, finalizando o artigo com a descrição de como ficou o ambiente.

 

Após resolver os principais problemas, comecei a explicar para o Zé que apenas isso não serie necessário: de nada adiantaria deixar o ambiente limpo, otimizado e controlado se, por algum motivo bobo, tudo fosse água abaixo em um momento de grande utilização. Na área de sistemas, e em particular na parte administrativa, a maioria das pessoas nem lembra que o sistema existe. Porém, é só um pequeno erro aparecer que lá vêm os usuários com dez pedras na mão. Sem contar que quase não há reconhecimento quando tudo funciona corretamente. Mas quando algo, por menor que seja, não funciona como esperado... é melhorar estar preparado, pois alguém, mais cedo ou mais tarde, vai te procurar. E, de acordo com a lei de Murfy que costuma reinar na área de T.I., será no pior momento possível.

 

Após deixar este ponto bem claro, comecei a explicar a importância da disponibilidade. Como trabalhamos com máquinas, todos esperam que elas estejam disponíveis 24 horas por dia, nos 365 dias do ano. Infelizmente, para se obter este tipo de disponibilidade, é necessária uma grande quantidade de recursos. Não apenas hardware, como RAID, link de rede redundante, gabinetes com fonte extra etc, mas também na parte de software e de pessoal. Ter a consciência que gastos para se obter uma disponibilidade razoável são necessário é o primeiro passo a ser dado. Ás vezes isso é muito mais uma questão cultural do que técnica, mas esse já é assunto para outro artigo.

 

No ambiente do Zé, expliquei quais seriam algumas das ações para garantir o mínimo de disponibilidade. Configurei uma replicação transacional do ambiente de produção para um ambiente de backup. Além disso, mostrei na prática como agir caso algum erro acontecesse. A rede caiu? Faltou força? A HD do servidor ficou sem espaço em disco? Uma fonte do servidor queimou? Cara uma destas situações, e outras mais desastrosas, foram documentadas, priorizadas, organizadas e praticadas, indicando quais os recursos necessários para se resolver o problema, quanto tempo, em média, seria gasto para resolver esta solução e quem seria o responsável por isso. Junto com este documento, e com o treinamento prático, uma lista de responsáveis por manter esta alta disponibilidade foi elaborada.

 

Com base em outras soluções técnicas, conseguimos estimar uma disponibilidade aceitável, a partir dos recursos disponíveis. Mais uma vez, deixei claro que, quanto maior for a disponibilidade desejada, mais caro vai sair. Por fim, Zé me fez um elogio, pois ele nunca tinha visto tanta preocupação com a disponibilidade da parte técnica.

 

Em seguida, comecei a falta sobre as ações pró-ativas. Este, no meu ponto de vista, é um tópico fundamental para quem trabalha com administração/desenvolvimento. Agir de forma pró-ativa é muito importante pois, caso contrário, é melhor se acostumar a ser chamado de madrugada para ‘apagar incêndios’.

 

Mais uma vez, saber agir de forma pró-ativa requer ultrapassar uma grande barreira cultural. Aqui devemos combater a máxima: ‘em time que está ganhando não se mexe’. Alias, quando ouço isso já me preparo para gastar um bom tempo explicando a necessidade de mudança de atitude.

 

Ser pró-ativo significa agir antes do problema. Enxergar depois da curva. Levar o bolo enquanto os outros ainda estão trazendo a farinha. Agindo desta maneira, efetivamente estamos fazendo as máquinas trabalharem para nós e não o contrário.

 

Voltando para a consultoria, expliquei para o Zé é que é um Capacity Plan (plano de capacidade) e como montar um. Com as estimativas contidas neste documento, pode-se planejar o consumo futuro de recursos, como quando é necessário adicionar uma nova HD ao servidor. Obviamente, este documento contém apenas algumas estimativas, que devem ser atualizadas periodicamente, e representam apenas um passo inicial.

 

Em seguida, a parte prática: configurar auditoria no SQL Server, criar alertas do SQL Server baseados nos marcadores de desempenho do Windows, utilizadas rotinas administrativas periódicas no servidor para limpeza, otimização, organização e coleta de dados, geração automática de relatórios do ambiente (enviadas por e-mail) e criação de uma série de atitudes automáticas que o sistema pode realizar em casos de problemas. Estas tarefas consomem tempos e recursos, mas em situações extremas, é um verdadeiro alívio contar com elas.

 

Já estava quase no final da consultoria quando resolvi deixar bem claro para Zé que, apesar de tudo que tínhamos feito, de nada adiantaria a consultoria e as ações tomadas se as práticas não fossem seguidas. O que quis dizer foi o seguinte: Se você deixar o cavalo solto ele vai embora junto com o primeiro que passar. Por isso é importante a atribuição de responsabilidade e o profissionalismo constante, para manter tudo aquilo que foi ganho pelas ações tomadas.

 

Acabada a parte técnica, resolvemos fazer uma pequena apresentação para os superiores de Zé, tanto para ‘mostrar serviço’ como para indicar que tudo aquilo não foi feito em vão. Da mesma maneira que no programa ‘Pimp My Ride’, choviam elogios. Acreditem: mostrar como era antes e como ficou depois possui um grande apelo. E o mais importante de tudo: deixar claro que o que foi feito na é mágica, mas sim o resultado de trabalho duro, dedicação, esforço e muita, mas muita força de vontade para resolver os problemas.