As empresas que possuem áreas destinadas à tecnologia, geralmente possuem uma infraestrutura que suporta todo o ambiente de servidores, redes, e sistemas operacionais. Geralmente estas áreas acabam criando um setor voltado apenas para suportar e detectar problemas relativos a erros causados pelos sistemas e aplicativos, problemas de softwares e hardwares. E assim não poderia ser diferente com as áreas de desenvolvimento e banco de dados.
Se tratando de databases, em algumas empresas onde o ambiente de banco de dados é grande, existem DBAs especializados apenas em suportar e resolver problemas causados pelos SGBDs e pelos componentes de bancos de dados.
Um ambiente de banco de dados, seja ele SQL Server ou Oracle, precisa estar sempre sendo monitorado, o hardware do servidor que armazena os dados deve estar sempre sendo revisto em relação a escalabilidade em processamento, memória e discos físicos. O sistema operacional precisa ser sempre atualizado, e as políticas de segurança devem ser sempre revistas.
Os backups que são feitos diariamente precisam ser sempre conferidos e revisados. Um índice, por exemplo, é um componente do database que precisa sempre estar sofrendo uma manutenção, afinal com o crescimento da tabela, a árvore binária do índice também aumenta e com isso a eficácia deste índice pode ser prejudicada.
Toda ferramenta de banco de dados de mercado possui o seu log, onde através dele o DBA pode ter uma noção mais detalhada da saúde de seu banco de dados. É aconselhável que mesmo conhecendo todo o ambiente, o DBA tenha como tarefa diária verificar cada log a cada dia. Este log é uma ferramenta de auxílio e pode muitas vezes salvar o ambiente de um problema maior.
O dicionário de dados de cada database é um aliado importante que pode ajudar ao DBA detectar como está a performance de seu banco de dados e como caminha a execução dos processos conectados no database.
Neste artigo demonstraremos uma metodologia de troubleshooting e citaremos alguns exemplos de como identificar problemas e falhas relacionadas ao banco de dados nos SGBDs SQL Server e Oracle, e ao mesmo tempo mostraremos a solução para estes problemas.
Troubleshooting
Troubleshooting é a forma de resolver problemas e detectar falhas e erros de modo sistemático onde o analista atua na causa raiz do problema até que este problema seja totalmente resolvido e assim o produto ou processo volte a ficar disponível e operacional.
Em todos os ambientes de databases, sejam eles de maior ou menor criticidade, é importante que o DBA tenha em mente que erros e falhas sempre vão aparecer e indiferente do problema, o profissional precisa considerar que além do foco no processo de identificação, manter a calma é um fator de extrema importância.
Isto pode determinar muitas vezes o melhor caminho na tomada de decisões para o sucesso no processo como um todo.
Alguns passos em relação a troubleshooting se seguidos com cuidado podem ajudar muito no processo de detecção e correção do problema, a saber:
· Sintomas: Conheça os sintomas, uma coleta de evidências é primordial para decidir quais são os passos que devem ser seguidos. Neste aspecto, os logs dos bancos de dados são muito importantes. Sendo assim, colete o máximo de evidências possíveis;
· Problema: Se as consequências não forem catastróficas, reproduza o problema baseando-se nos sintomas evidenciados no passo anterior, assim o analista terá a certeza de que o problema realmente existe;
· Hipóteses: Formule e separe as possíveis hipóteses, em seguida, elas devem ser testadas. Estes testes serão importantes para reduzir ...