MySQL é um sistema de gerenciamento de banco de dados relacional (SGBD) de código aberto (Open Source) com licença gratuita para uso comunitário. Sua linguagem de banco de dados é SQL (Structured Query Language) que segue os padrões e normas técnicas estabelecidas e controladas pelo ANSI (American National Standards Institute) em parceria com ISO (International Organization for Standardization) e IEC (International Electrotechnical Commission).
PROBLEMATIZAÇÃO
Formulação do Problema
Com a ferramenta de simulação o administrador poderá simular antes de iniciar um projeto de banco de dados ou mesmo com o banco de dados já em produção, mas com indisponibilidade programada e analisar as reais necessidades que seu ambiente terá. Você pode simular, dentro de uma estimativa de usuários e consultas, por exemplo, e configurar o banco de dados de acordo com o resultado obtido.
Solução Proposta
Em produção, quando há necessidade de fazer algum ajuste no ambiente de banco de dados, os DBAs encontram muita dificuldade em fazer as correções necessárias nos pontos de ajuste detectados. A ferramenta também auxiliará o DBA na configuração ideal para um novo projeto dentro das características de acesso de uma determinada empresa.
OBJETIVOS
Objetivo Geral
O DBA pode utilizá-lo como suporte em um novo projeto para uma empresa, ao poder rodar a ferramenta para simular uma possível carga com parâmetros estimados e avaliar a melhor configuração para cada projeto e assim, por exemplo, evitar a compra de novos equipamentos , onde a real necessidade da empresa não é o investimento na aquisição de novas tecnologias.
Objetivos Específicos
METODOLOGIA
ESTRUTURA DO TRABALHO
MySQL e seus recursos de ajuste de desempenho, estudo de ferramentas de gerenciamento avaliando sua capacidade de realizar análises e ajuste de desempenho. Como pontos de base teórica deste trabalho técnico científico, são descritos 05 (cinco) tópicos: conceitos de avaliação e análise de desempenho, banco de dados MySQL, análise e ajuste de desempenho em MySQL, ferramentas de análise e ajuste de desempenho existentes e armazenamento InnoDB.
AVALIAÇÃO E ANÁLISE DE DESEMPENHO
Isso é útil porque você não deve se preocupar com o desempenho de um banco de dados específico, mas sim com o aplicativo inteiro. O banco de dados nem sempre é o gargalo da aplicação, e avaliar o desempenho de toda a pilha pode revelar isso.
BANCO DE DADOS MYSQL
Arquitetura do MySQL
A camada de aplicação representa a interface do usuário, a forma como o servidor MySQL se comunica com seus usuários. Interface de consulta: são instruções DML (Data Manipulation Language), um subconjunto de SQL (Structured Query Language) usado para selecionar e manipular dados;
Tipo de Tabelas ou Ferramentas de Armazenagem
A arquitetura do MySQL difere pouco daquela de outros servidores de banco de dados e é útil para uma ampla variedade de propósitos. Isso significa que quando você cria tabelas MERGE, toda a sua coleção de tabelas deve ser criada com informações de coluna e índices idênticos. Maior velocidade de acesso, já que seu conjunto de tabelas pode ser alocado em múltiplos discos;
Hash são tipos de tabelas onde sua estrutura é formada por um array e o acesso aos objetos é feito diretamente através do índice calculado pela função hash, que é o retorno do índice informado pela chave. O InnoDB foi projetado para atingir desempenho máximo ao processar uma grande quantidade de dados. Como a restauração de um backup deve ser feita pelo MySQL usando seus próprios logs, não há necessidade de arquivar os logs do InnoDB.
ANÁLISE E AJUSTE DE DESEMPENHO DO MYSQL
Configuração de Parâmetros
Esses arquivos com configurações pré-definidas são projetados para serem distribuídos quando o SGBD for instalado, tornando a configuração o mais simples possível, mesmo que não haja grandes problemas para isso, é apenas um facilitador.
Instruções SQL
Na tabela 5 dos anexos encontra-se uma lista completa das variáveis de estado e uma breve descrição do seu significado. Algumas variáveis permitem a análise de seus valores, comparando-os com variáveis de configuração do servidor MySQL e, portanto, novos ajustes podem ser feitos pelo administrador do banco de dados. Estas variáveis estão, de certa forma, relacionadas às variáveis de status, pois dependendo de seus valores serão necessárias algumas alterações na configuração do MySQL.
Independentemente da quantidade de memória projetada para rodar em um ambiente, o MySQL “não sabe” quanta memória o computador possui. A configuração que o MySQL deve utilizar na memória faz parte dos procedimentos de ajuste de desempenho (LIMA, 2003). Na seção 2.3.1 deste trabalho, vimos como o MySQL configura parâmetros de carga e arquivos de configuração padrão dependendo do tamanho da memória do servidor.
FERRAMENTAS PARA ANÁLISE DE DESEMPENHO
- Mysqlslap – Cliente de Emulação de Carga
- Mysqladmin
- phpMyAdmin
- Innotop – Monitor em tempo real das conexões
- Tuning Primer
- Resultado das Ferramentas Avaliadas
Isso pode levar muito tempo para identificar e resolver quaisquer anomalias na configuração e execução do MySQL. Além das funcionalidades básicas para administração de banco de dados, o phpMyAdmin permite a visualização de variáveis de tempo de execução do MySQL. Essas informações são apresentadas de forma estatística, conforme mostrado na Figura 6, onde o usuário pode visualizar a quantidade e porcentagem em que os comandos MySQL foram executados, o tráfego na rede do servidor MySQL em número de bytes do total recebido e enviado e a média por hora, conexões quebradas e com falha, entre outras informações (PHPMYADMIN, 2011).
Tuning Primer é um script Linux que avalia o status do servidor MySQL e sugere alterações na configuração. A ferramenta é um complemento às demais já apresentadas para ajudar os administradores a encontrar e ajustar as configurações do MySQL. O objetivo deste trabalho foi desenvolver uma ferramenta de simulação com recursos de ajuste de desempenho do MySQL.
IMPLEMENTAÇÃO
O ambiente de desenvolvimento e execução da ferramenta é configurado em uma máquina instalada com sistema operacional Linux, distribuição Ubuntu versão 11.10. Ao iniciar um novo banco de dados, a ferramenta gera aleatoriamente cláusulas SQL, que são utilizadas para executar a simulação e também para garantir que uma nova simulação seja executada de forma idêntica; Portanto, essas funções são armazenadas em uma tabela específica. Para cada simulação em um banco de dados que já tenha passado por pelo menos uma execução, estes comandos são repetidos.
As tabelas contendo os dados aleatórios preenchidos na primeira execução da simulação e que também sofrem alterações durante a execução são recarregadas com os dados originais da criação do ambiente, ou seja, toda a estrutura do banco de dados é redefinida de acordo com o original, o que garante a qualidade dos resultados obtidos. O simulador de análise e customização de banco de dados MySQL que foi finalmente projetado e desenvolvido é uma ferramenta de fácil compreensão e execução, mas que possui diversas tecnologias misturadas, tornando-a bastante complexa para um usuário iniciante. Por fim, cabe mencionar e destacar a ocorrência de determinados riscos ao longo da obra, os quais estão descritos no item 3.2.1.
APRESENTAÇÃO DA FERRAMENTA
Ao confirmar o início da simulação, surge a próxima tela, mostrada na Figura 16, para informar ao administrador sobre a criação do ambiente, ou seja, tabelas, preenchimento de dados, processos e tabelas auxiliares para efetiva execução. Após a criação de todo o ambiente, o administrador clica no botão iniciar e a tela de informações da simulação aparece conforme mostrado na Figura 17. Ao completar a tela de simulação, o usuário pode acompanhar as principais variáveis de configuração localizadas na lateral direita e acima.
Conforme mostrado na tela da Figura 20, existe um botão ao lado de cada variável exibida, que abre uma caixa para inserir o novo valor correspondente à variável selecionada, conforme mostrado na Figura 21. Além de alterações de variáveis e visualizações, MySQL Configuration , a ferramenta também está preparada para permitir a visualização de variáveis de execução ou, também conhecidas, de status. A Figura 22 mostra um exemplo em que todas as variáveis são exibidas, mas nenhuma ação do usuário é permitida nesta parte do sistema.
VALIDAÇÕES DA FERRAMENTA
Mesmo apresentando um teste simples, com poucos registros, fica claro o quão importante é a influência dos ajustes que o banco de dados pode sofrer. O ajuste de desempenho do banco de dados não para na simples configuração de variáveis. O tema proposto no projeto atendeu às necessidades de desenvolvimento de uma ferramenta para simulação de processos, com o objetivo de gerar e obter dados para auxiliar na análise e ajuste de desempenho em um banco de dados MySQL.
Lembre-se que as configurações do banco de dados são apenas uma forma de análise e ajuste para melhorar o desempenho de um banco de dados. Nos testes apresentados na seção de validação, temos uma ideia melhor de como funciona a ferramenta de simulação e como melhorias significativas podem ser obtidas ajustando variáveis de configuração em um banco de dados. Desenvolvimento de Ferramenta para Análise de Ajustes de Desempenho do Banco de Dados Oracle”.
REQUISITOS
Requisitos Funcionais
O projeto é modelado com o objetivo de desenvolver a ferramenta (software) para análise de simulação e ajuste de desempenho para SGBD MySQL RF06: O sistema permite a criação de um novo banco de dados para simulação de acordo com os parâmetros escolhidos pelo administrador; RF07: O sistema permite preencher as tabelas de um novo banco de dados de acordo com o valor informado pelo administrador;
RF09: O sistema permite disponibilizar uma área contendo um relatório das simulações e salvar os registros para consultas futuras.
Requisitos Não Funcionais
DIAGRAMA DE CASOS DE USO
Análise e Ajuste de Desempenho
Descrição: Autentique-se no MySQL Server como administrador, concedendo acesso a todas as funções do banco de dados. Caso o administrador do passo 1.2 opte por alterar uma variável do banco de dados durante a simulação, ele executa o UC03 do item 3.2.1.3. Pós-condições: Reinicie manualmente o MySQL Server devido a alterações no arquivo de configuração do MySQL, conforme sugerido ao alterar a variável.
Descrição: O sistema monitora os processos em execução e permite que o administrador tome medidas para encerrar o processo se o tempo de execução do Servidor MySQL aumentar. Descrição: Executa um simulador de processos para auxiliar na obtenção de dados e informações relevantes para a análise e customização do Servidor MySQL, conforme Figura 35. Realiza competição de acesso em um banco de dados, envolvendo inserções, atualizações, exclusões e consultas são realizadas, com o objetivo de sobrecarregar a operação e assim garantir resultados.
DIAGRAMA DE COMPONENTES
DIAGRAMA DE IMPLANTAÇÃO
Designed_tmp_tables Número de tabelas temporárias implícitas na memória criadas durante a execução da instrução. Delayed_insert_threads Número de threads do manipulador INSERT DELAYED em uso. Handler_read_rnd Número de solicitações para ler um registro com base em uma posição fixa.
Handler_read_rnd_next Número de solicitações para ler o próximo registro no arquivo de dados. Select_full_join Número de junções sem chaves (se for 0, você deve verificar cuidadosamente o índice de suas tabelas). Select_full_range_join Número de junções onde pesquisas segmentadas foram usadas na tabela de referência.