SISTEMA DE GERENCIAMENTO DE SGBD SQL SERVER



Documentos relacionados
SISTEMA DE MONITORAMENTO DE SGBD SQL SERVER.

Noções de. Microsoft SQL Server. Microsoft SQL Server

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Conceitos de Banco de Dados

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Prof. Marcelo Machado Cunha

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

Roteiro 2 Conceitos Gerais

Persistência e Banco de Dados em Jogos Digitais

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

LINGUAGEM DE BANCO DE DADOS

Documento de Análise e Projeto VideoSystem

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Manual do Painel Administrativo

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

NetEye Guia de Instalação

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

2. INSTALAÇÃO E CONFIGURAÇÃO

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta:

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Desenvolvendo Websites com PHP

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Disciplina de Banco de Dados Introdução

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

Manual do sistema SMARsa Web

Procedimentos para Reinstalação do Sisloc

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

Sistema de Controle de Solicitação de Desenvolvimento

Manual do Visualizador NF e KEY BEST

Engenharia de Requisitos Estudo de Caso

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

MANUAL DO GERENCIADOR ESCOLAR WEB

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Engenharia de Software III

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

Especificação de Requisitos

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Footprints Service Core. Manual de uso do sistema

Histórico de Revisão Data Versão Descrição Autor

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Software automatizado para controle de consultas da clínica de fisioterapia

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

Manual SAGe Versão 1.2 (a partir da versão )

Aplicação Prática de Lua para Web

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Governança de TI. ITIL v.2&3. parte 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

MANUAL 2ª CAMADA DE SEGURANÇA E NOVAS REGRAS DE CADASTRAMENTO

ISO/IEC 12207: Gerência de Configuração

MANUAL DO PVP SUMÁRIO

Procedimentos para Instalação do SISLOC

Introdução à Banco de Dados. Definição

Gestão inteligente de documentos eletrônicos

Banco de Dados I. Introdução. Fabricio Breve

Processos Técnicos - Aulas 4 e 5

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Rotina de Discovery e Inventário

INTRODUÇÃO. Diferente de Bando de Dados

GUIA DE USUÁRIO - GU-

SISTEMA GERENCIADOR DE BANCO DE DADOS

Microsoft Access XP Módulo Um

Linguagem SQL Sub-linguagem DDL

Histórico da Revisão. Data Versão Descrição Autor

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

Um Driver NDIS Para Interceptação de Datagramas IP

Módulo e-rede VirtueMart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Introdução Funcionalidades por perfil Advogado e Jus Postulandi Adicionar defensoria representante de uma parte Adicionar procuradoria representante

MANUAL DE UTILIZAÇÃO

Sistema de Gestão de Freqüência. Manual do Usuário

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Introdução a Banco de Dados

GBD PROF. ANDREZA S. AREÃO

2 Diagrama de Caso de Uso

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, cj. 121 CEP São Paulo - SP (11)

ÍNDICE 1 INTRODUÇÃO ACESSO AOS SISTEMAS DOCUMENTOS MANUTENÇÃO OCR REGISTRO DE DOCUMENTOS GERANDO DOCUMENTOS

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Transcrição:

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO BACHARELADO SISTEMA DE GERENCIAMENTO DE SGBD SQL SERVER MARLON RAFAEL SCHRAMM BLUMENAU 2012 2012/1-13

MARLON RAFAEL SCHRAMM SISTEMA DE GERENCIAMENTO DE SGBD SQL SERVER Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Sistemas de Informação - Bacharelado. Prof. Mauro Marcelo Mattos, Dr. - Orientador BLUMENAU 2012 2012/1-13

SISTEMA DE GERENCIAMENTO DE SGBD SQL SERVER Por MARLON RAFAEL SCHRAMM Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por: Presidente: Membro: Membro: Prof. Mauro Marcelo Mattos, Doutor - Orientador, FURB Prof. Cláudio Ratke, Mestre - FURB Prof. Alexander Roberto Valdameri, Mestre - FURB Blumenau, 3 de julho de 2012.

Dedico este trabalho especialmente a minha família e a todos os amigos que me ajudaram diretamente ou indiretamente na realização deste.

AGRADECIMENTOS A Deus, pela sabedoria, força e amparo. À minha família, que nunca deixou de me apoiar e ajudar em todos os momentos da minha vida. Aos meus amigos, pela força e incentivo. Ao meu grande amigo Johnny Virgil - Mestre, pela ajuda, palpites e disponibilidade. Ao meu orientador, Mauro M. Mattos, por ter acreditado na conclusão deste trabalho.

A mente que se abre a uma nova idéia jamais volta ao seu tamanho original. Albert Einstein

RESUMO Devido ao aumento de dados nas empresas, alinhado com a necessidade de gerenciamento das mesmas fez com que surgissem os aplicativos de software e seus bancos de dados, possibilitando armazenar todos os dados que uma empresa necessita. Garantir que todos os Sistemas Gerenciadores de Banco de Dados (SGBD) de uma empresa estejam sendo gerenciado e disponibilizado as informações de uma maneira eficaz é o objetivo principal deste trabalho. Esta solução é aplicada a uma empresa de Blumenau que não possui nenhum sistema de monitoramento de SGBD, centralizando as informações no produto da Microsoft conhecido como SharePoint. O sistema foi desenvolvido em C#.Net criando Visual WebParts para as telas no SharePoint Foundation, monitorando apenas SQL Server a partir da versão 2008 para auxiliar o trabalho do administrador de banco de dados. Como resultado tem-se um gerenciamento em tempo real com informações úteis aos administradores do SQL Server. Palavras-chave: Banco de Dados. Gerenciamento. SGBD.

ABSTRACT Due to the increasing amount of information in companies, in accordance with the need of management, software applications and databases were created, making it possible to store all the data that a company needs. To ensure that all database management systems (DBMS) in a company are monitored and centralized effectively is the main purpose of this paper. This solution is applied in a company in Blumenau which has no DBMS monitoring system, centralizing all information in a Microsoft product known as SharePoint. The system was developed in C#.Net, creating Visual WebParts for windows in SharePoint Foundation and monitoring only SQL Server from version 2008 to assist the work of the database administrator. As a result, there is a real-time management with useful information to SQL Server administrators. Key-words: Database. Management. DBMS.

LISTA DE FIGURAS Figura 1 - Fluxo do processo de cadastrar instância de SQL Server... 25 Figura 2 - Fluxo do processo do Job Status... 26 Figura 3 - Fluxo do processo do Job Monitoramento... 26 Figura 4 - Processo pare realizar a exclusão de uma instância do monitoramento... 27 Figura 5 - Caso de uso... 29 Figura 6 - Caso de uso... 30 Figura 7 - Modelo de entidade do sistema de monitoramento... 31 Figura 8 - Execução de uma procedure de relatório... 35 Figura 9 - Métodos da classe BaseDados para executar procedures... 36 Figura 10 - Procedure do relatório de Status dos DataBases... 37 Figura 11 - Jobs para realizar monitoramento... 38 Figura 12 - Método responsável por gerar relatório de Status da Base de Dados... 39 Figura 13 - Classe responsável por gerar relatório PDF... 40 Figura 14 - Criação do Job de Monitoramento... 40 Figura 15 - Scripts que ficam na biblioteca do SharePoint... 41 Figura 16 - Método que extrai as informações do Script... 42 Figura 17 - Laço de repetição para executar Script no SQL Server... 42 Figura 18 - Cadastro de Servidor SQL Server... 43 Figura 19 - Script utilizados pelo sistema... 44 Figura 20 - Lista de parâmetros... 45 Figura 21 - Lista de relatórios... 46 Figura 22 - Lista de endereços Url do Sistema... 47 Figura 23 - Gerar relatório... 48 Figura 24 - Tela de visualização Geral por Instância... 49 Figura 25 - Excluir Monitoramento... 50 Figura 26 - Biblioteca de relatórios... 51 Figura 27 - Lista de instância monitoradas... 52

LISTA DE QUADROS Quadro 1 - Requisitos funcionais... 28 Quadro 2 - Requisitos não funcionais... 28 Quadro 3 - Dicionário de dados da entidade Servidor... 32 Quadro 4 - Dicionário de dados da entidade ItensLog... 32 Quadro 5 - Dicionário de dados da entidade BaseDados... 33 Quadro 6 - Dicionário de dados da entidade LogStatusBaseDados... 33 Quadro 7 - Dicionário de dados da entidade Tabela... 33 Quadro 8 - Dicionário de dados da entidade LogCrescimentoBaseDados... 34 Quadro 9 - Dicionário de dados da entidade Cliente... 34 Quadro 10 - Dicionário de dados da entidade UpgradeServidor... 34 Quadro 11 - Caso de uso Efetuar Login... 58 Quadro 12 - Caso de uso Cadastrar Instância... 59 Quadro 13 - Caso de uso Excluir monitoramento... 60 Quadro 14 - Caso de uso Manter acesso ao sistema... 61 Quadro 15 - Caso de uso Emitir relatório de histórico de espaço em disco... 61 Quadro 16 - Caso de uso Emitir relatório da quantidade de objetos por instância... 62 Quadro 17 - Caso de uso Emitir relatório de percentual de crescimento das bases... 63 Quadro 18 - Caso de uso Emitir relatório da quantidade de memória utilizado por Database... 64 Quadro 19 - Caso de uso Emitir relatório da quantidade de I/O por Database... 65 Quadro 20 - Caso de uso Emitir relatório indicando o status do banco de dados... 66

LISTA DE SIGLAS AD - Administrador de Dados ANSI - American National Standards Institute BI - Business Intelligence CPU - Central Processing Unit DA - Data Administrator DBA - DataBase Administrator DCL - Data Control Language DDL - Data Definition Language DML - Data Manipulation Language DMV - Dynamic Management View IO - Input/Output ISO - International Standards Organization ITIL - IT Infrastructure Library LDF - Log Database Files MDF - Master Database Files MOSS - Microsoft Office SharePoint Server SCOM - Microsoft System Center Operations Manager SEQUEL - Structured English Query Language SGBD - Sistema Gerenciador de Banco de Dados SQL - Structured Query Language TCC - Trabalho de Conclusão do Curso TI - Tecnologia de Informação T-SQL - Transaction-SQL UML - Unified Modeling Language

SUMÁRIO 1 INTRODUÇÃO... 12 1.1 OBJETIVOS DO TRABALHO... 13 1.2 ESTRUTURA DO TRABALHO... 13 2 FUNDAMENTAÇÃO TEÓRICA... 14 2.1 ADMINISTRAÇÂO DE DADOS E DE BANCO DE DADOS... 14 2.2 GERENCIAMENTO DE BANCO DE DADOS... 15 2.3 SHAREPOINT FOUNDATION... 17 2.4 MICROSOFT SQL SERVER... 17 2.5 TIPOS DE OBJETOS... 18 2.6 LINGUAGEM SQL... 20 2.7 SISTEMA ATUAL... 22 2.8 TRABALHOS CORRELATOS... 22 3 DESENVOLVIMENTO... 24 3.1 SOLUÇÃO PROPOSTA... 24 3.2 ESPECIFICAÇÃO... 27 3.2.1 Requisitos principais do sistema... 28 3.2.2 Diagrama de casos de uso... 29 3.2.3 Modelo de entidade e relacionamento (MER)... 31 3.2.4 Dicionário de dados... 32 3.3 IMPLEMENTAÇÃO... 34 3.3.1 Técnicas e ferramentas utilizadas... 35 3.3.2 Operacionalidade da implementação... 43 3.4 RESULTADOS E DISCUSSÃO... 52 4 CONCLUSÕES... 54 4.1 EXTENSÕES... 55 REFERÊNCIAS BIBLIOGRÁFICAS... 56 APÊNDICE A - DETALHAMENTO DOS CASOS DE USO... 58

12 1 INTRODUÇÃO A partir do século 21, com a constante mudança nos processos de trabalho surge a era do conhecimento dentro de uma empresa, e cada vez mais existe a necessidade de gerenciar e controlar de maneira eficiente toda informação, uma vez que, adquirindo mais conhecimento através da informação, têm-se mais soluções e possibilidades de evoluir o negócio. Segundo Davenport e Prusak (1998, p. 6), o conhecimento pode ser comparado a um sistema vivo, que cresce e se modifica à medida que interage com o meio ambiente. Devido ao aumento de dados nas empresas, alinhado com a necessidade de gerenciar este aumento, surgiram aplicativos de software e seus bancos de dados, possibilitando armazenar todos os dados de que uma empresa necessita. Para que seja viável guardar as informações de uma forma segura e que seja recuperada facilmente, chegando-se a criar um Sistema Gerenciador de Banco de Dados (SGBD). Segundo Silberschatz, Korth e Sudarshan (1999, p. 21), um SGBD consiste em uma coleção de arquivos e programas que são interrelacionados que acabam permitindo ao usuário um acesso para consulta e alterações desses dados. Em qualquer organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos (LIMA, 1997). Num ambiente de base de dados, o recurso primário é uma base de dados e os recursos secundários são o próprio SGBD e aplicativos relacionados. A administração desses recursos é de responsabilidade de um administrador de banco de dados (DataBase Administrator - DBA) (DATE, 2000, p.18). Logo, esse DBA detém todos os privilégios a respeito de definição de acesso a dados e tem que garantir o funcionamento correto, através de manutenções regulares e acompanhamento de qualquer alteração que for realizada. Esse processo é chamado de monitoramento de banco de dados. Conforme Risch (1989, p. 445), o monitoramento de banco de dados compreende observar as constantes alterações feitas nas bases de dados e poder dar informações e alertar para tomadas de decisões sobre as diferentes situações do banco de dados. A KeepIT é uma empresa de prestação de serviço de infraestrutura de Tecnologia de Informação (TI). Dentre os seus serviços está o monitoramento de servidores em seus clientes. Em função de ser monitorado somente o status do serviço de DataBase Engine na parte de SGBD, constatou-se a necessidade de gerenciar outros recursos, tais como processamento e

13 memória. Neste contexto propõe-se um sistema que consiga monitorar as atividades de manutenção periódica e preventiva de um SGBD tipo SQL Server, centralizando o acesso a essas informações em uma intranet, utilizando a ferramenta de colaboração da Microsoft, SharePoint Foundation. 1.1 OBJETIVOS DO TRABALHO O objetivo deste trabalho é a concepção de uma solução de monitoramento de SGBD tipo SQL Server. Os objetivos específicos são: a) disponibilizar uma aplicação web para gerenciamento de memória, CPU, espaço em disco e IO dos bancos de dados tipo SQL Server; b) centralizar o acesso das informações de monitoramento através do SharePoint Foundation; c) validar a aplicação através de um estudo de caso. 1.2 ESTRUTURA DO TRABALHO Esse trabalho está disposto em quatro capítulos. No primeiro capítulo apresenta-se a introdução, os objetivos e a estrutura do trabalho. No segundo capítulo apresenta-se a fundamentação teórica, destacando os conceitos de SGBD e seus componentes agregados. No terceiro capítulo é apresentado o desenvolvimento do sistema, implementação realizada e operacionalidades do sistema. O quarto capítulo apresenta as conclusões e sugestões de extensão e melhorias para trabalhos futuros.

14 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo introduz os conceitos relacionados ao escopo do projeto tais como a Administração de Dados e de Banco de Dados, Monitoramento de Banco de Dados, SharePoint Foundation, Microsoft SQL Server, Tipos de Objetos e a Linguagem SQL. Além disso, serão apresentados os trabalhos correlatos. 2.1 ADMINISTRAÇÂO DE DADOS E DE BANCO DE DADOS Na essência, um sistema de banco de dados simplesmente é um sistema computadorizado que armazena registros (DATE, 2000). Realizando uma comparação, ele próprio pode ser visto como o equivalente a um depósito de arquivamento. Em outros termos é um repositório para coleções de arquivos. Para organizar tudo isso, deve-se ter um usuário com autonomia para exercer tal função. Ficam evidentes duas funções no contexto de banco de dados, que são esclarecidas o administrador de dados (Data Administrator - DA) e o administrador de banco de dados (DataBase Administrator DBA) (DATE, 2000). Elas estão diretamente associadas, pois o DA é responsável por tomar as decisões estratégicas e também de normas com relação às informações da empresa. Já o DBA, fica com a tarefa de fornecer o suporte técnico necessário para executar as decisões do DA (SILBERSCHATZ; KORTH; SUDARSHAN, 1999). Com isto o DBA é responsável por controlar o sistema de banco de dados em um nível técnico (DATE, 2000). Algumas das funções de um DBA são: a) definir o esquema conceitual; b) definir o esquema interno; c) definir restrições de segurança e integridade; d) monitorar o desempenho e responder a requisitos de mudança. O administrador de banco de dados, diferentemente do administrador de dados, que trabalha com as informações, é mais técnico, trabalha com a implementação chamado de DBA (DataBase Administrator) (DATE, 2000).

15 No ambiente de banco de dados, o principal recurso é o próprio banco de dados. A seguir, vêm o SGBD e os aplicativos relacionados. A administração desses recursos é responsabilidade do DBA (ELMASRI; NAVATHE, 2005). O DBA pode ajudar a evitar problemas de integridade no banco de dados utilizando-se de implementações do tipo restritivas de integridade que também são conhecidos como regras de negócio (DATE, 2000). O administrador do banco de dados tem autoridade especial para executar comandos que alteram o schema de um banco de dados. Esses comandos por si só causam grandes efeitos sobre o banco de dados (GARCIA-MOLINA; ULLMAN; WIDOM, 2001). Segundo Date (2000, p. 25), o DBA tem a jurisdição completa sobre o banco de dados, pode assegurar que o acesso seja unicamente por canais apropriados. Com isso, podem-se tratar as regras para segurança ou regras a serem validadas sempre que houver uma tentativa de acesso a essas informações, que sempre são confidenciais. O DBA também é responsável pela coordenação e monitoração do uso delas e por adquirir recursos de software e hardware conforme seja necessário (ELMASRI; NAVATHE, 2005). 2.2 GERENCIAMENTO DE BANCO DE DADOS Para garantir um estado de funcionamento considerado apropriado para um banco de dados, devem-se realizar vários gerenciamentos, que muitas vezes são realizados pelo DBA, que detém conhecimento técnico para planejar monitoramentos periódicos e em tempo real. Todos esses processos requerem muito tempo e dedicação, já que um SGBD fornece informações sobre os vários recursos que um banco de dados disponibiliza. Entre eles estão à possibilidade de conseguir acompanhar as mudanças ocorridas no banco de dados, tanto com informações em tempo real quanto com histórico de problemas e acontecimentos. Isso amplia a possibilidade de evitar futuros problemas. Segundo Risch (1989, p. 445), o monitoramento do banco de dados se resume em analisar as constantes mudanças realizadas nos bancos de dados e conseguir prover informações e avisos para tomadas de decisões referentes às possíveis situações adversas. O acompanhamento do banco de dados remotamente ou a distância é um dos desejos da grande maioria dos que trabalham neste segmento da informática (LUCHTENBERG, 2002, p. 3).

16 As informações do banco de dados, como espaço em disco, número de tabelas, número de quantidade de vezes em que foi realizada uma manutenção, quantidade de objetos bloqueados, são muito importante para o bom funcionamento do SGBD. Muitas vezes, são esquecidas, que vêm à tona somente quando o problema ocorre (ALMEIDA, 2007). Disponibilizar uma gestão de capacidade a nível, por exemplo, de espaço em disco, uso de CPU e armazenamento deve vir junto com a capacidade de compreensão do negócio. Na IT Infrastructure Library (ITIL) existe o processo de gerenciamento da capacidade, que é responsável pela disponibilização no volume certo, no tempo certo ao atendimento das demandas do negócio em termos de serviços de TI, garantindo que os recursos disponíveis sejam utilizados de forma mais eficiente possível. Para que seja possível atingir os objetivos, é imprescindível a identificação dos serviços que são requeridos pelas áreas de negócio da organização (MAGALHÃES; PINHEIRO, 2007). Obter informações de uma atividade executada, a fim de restaurar um serviço ou outro item de configuração para uma linha de base anterior é composto na ITIL, com o objetivo de usar o retorno como uma forma de remediação quando uma mudança ou liberação não for bem sucedida. Segundo Almeida (2007, p. 17), as empresas têm um bom planejamento de infraestrutura antes de ampliar o uso de um banco de dados. O estudo para que isso seja possível é feito através de avaliação do hardware, para que consiga indicar se o mesmo está ou não em condições de suportar a demanda de requisições de acesso, e também da rede, do processador, do disco, entre outros. Esse estudo pode ser complementado com um monitoramento de SGBD. Podemos dizer que um sistema de gerencialmente de banco de dados atendem admiravelmente os desafios das aplicações comerciais das últimas décadas e tais sistemas necessitam monitoramento (TAMER, 1997). De maneira geral, o monitoramento de hardware é necessário, porém deixa de ser uma atividade com mesma frequência do que o monitoramento de um SGBD (ALMEIDA, 2007, p. 17).

17 2.3 SHAREPOINT FOUNDATION O SharePoint é uma plataforma de colaboração corporativa via web, que permite conectar e capacitar pessoas por meio de um conjunto integrado de recursos avançados. Este produto facilita o trabalho em conjunto, de modo que os colaboradores podem configurar sites da web para compartilhar informações, gerenciar documentos com versionamento e até publicar relatórios que ajudem na tomada de decisões. O SharePoint no mundo do Business Intelligence (BI) é comumente utilizado como servidor front-end, ou seja, especialmente para mostrar as informações úteis para a empresa (ENGLISH BILL; MARK, 2011, p. 6). Posteriormente foi lançado a versão 2007, mais conhecida como Microsoft Office SharePoint Server (MOSS), já utilizando a versão 2.0 da plataforma.net. Nessa versão, foram oferecidos recursos como BI, portal no conceito de criar sites e centralizar informações, foi adicionado o recurso de pesquisa, gerenciamento de conteúdo e a facilidade de criar formulários de negócios utilizando o produto InfoPath. A última versão, lançada em 2010, foi totalmente desenvolvida no.net FrameWork 3.5 e utiliza também recursos SilverLight para a camada de apresentação ficar mais interativa e agradável. Todos os recursos existentes na versão anterior foram aprimoradas e algumas foram incluídas, como por exemplo o pacote de soluções para implantação de projetos em SharePoint, novas WebParts foram incluídas e diversas outras funcionalidades e integrações com os produtos Microsoft. 2.4 MICROSOFT SQL SERVER A empresa Microsoft possui um produto para atender o mercado de SGBD relacional, chamado de SQL Server, que por sua vez, faz o uso de uma linguagem com nome próprio Transaction-SQL (T-SQL) que é implementada sobre o padrão SQL ANSI. A história do SQL Server começou com a Microsoft adquirindo o produto de outra empresa chamada de Sybase em 1988 (ALMEIDA, 2007, p. 17). Após ter sido efetuado diversas modificações no banco adquirido pela Sybase, o SQL Server conseguiu atingir um reconhecimento de mercado grande, a partir de sua versão 7, quando acabou incorporando

18 inúmeras funcionalidades e ferramentas até então existentes em outros bancos de dados (ALMEIDA, 2007, p. 18). O SQL Server em 1988 teve sua primeira versão lançada, foi desenvolvido para a plataforma OS/2 entre Microsoft e a Sybase. Durante os anos 90 a Microsoft iniciou o desenvolvimento do banco de dados SQL Server para a plataforma Win NT. Em 1994 houve o rompimento da parceria Microsoft com a Sybase. Em 1995 foi lançado a versão 6.0 e em 1998 foi lançada a versão 7. Vale informar que nesta versão o SQL foi totalmente reescrito. Em 2000 a Microsoft lançou o SQL Server 2000, que até o momento foi o mais importante lançamento. Esta versão foi construída sobre o FrameWork do SQL Server 7.0, com esta versão o time de desenvolvimento da Microsoft esperava possuir uma tecnologia para os próximos 10 anos. E em 2003 surgiu a primeira versão 64-bit podendo acessar maior quantidade de memória. Em 2005 é lançado o SQL Server 2005 com uma grande integração com a plataforma.net incluindo recursos novos, tais como as Dynamic Management Views (DMVs) que são views dinâmicas disponíveis que retornam informações de estado do servidor que podem ser usadas para monitorar a integridade de uma instância do servidor, diagnosticar problemas e ajustar o desempenho. Em 2008 a Microsoft lança o SQL Server 2008 com diversas funcionalidades novas como tipo de dados geográfico, controle de carga por usuário entre outras (HOTEK, 2010). Na última versão no atual presente, foi lançada em 2010 a versão evoluída do SQL Server 2008 chamado de SQL Server 2008R2, dentre diversas melhorias a principal foi grandes novidades no recurso de BI (MISTRY; MISNER, 2010). 2.5 TIPOS DE OBJETOS Para cada tipo de banco de dados é diferente a quantidade de objetos que é possível criar e utilizar. Quanto maior a possibilidade de criar estes objetos, maior será a facilidade em obter recursos como: integridade, segurança e facilidade trabalhar com as informações. É possível armazenar e manipular dados dentro de objetos, eles possuem definições de restrições (OPPEL, 2009).

19 As restrições (constraints) são aplicadas em tabelas, colunas ou até mesmo em um domínio que limita o tipo de dado que pode ser inserido no objeto respectivo. Segundo Oppel (2009) as restrições podem ser divididas em três categorias: a) restrições relativas a tabelas: estas restrições podem ser incluídas como parte da definição da coluna ou como um elemento na definição da tabela; b) restrições de domínio: uma restrição de domínio é associada com qualquer coluna que é definida utilizando domínio; c) asserções: é uma restrição relacionada a uma ou mais tabelas. Abaixo descrevem-se os objetos que definem as restrições: a) Check Constraints: (Constraint de verificação), permite definir um predicado que uma linha deve atender para ser inserida na tabela ou alterada (BEN-GAN, 2010); b) Default Constraints: (Constraint padrão), permite associar com um determinado atributo. Expressão usada como valor padrão quando um valor explícito não é especificado (BEN-GAN, 2010); c) Primary Key Constraints: (Constraint de chave primária), permite impor exclusividade de linhas e também não permite valores nulos (NULL) (BEN-GAN, 2010); d) Foreign Key Constraints: (Constraint de chave estrangeira), impõe uma integridade referencial entre tabelas, com a finalidade de restringir o domínio de valores permitidos nas colunas com relação àqueles existentes nas colunas referenciadas (BEN-GAN, 2010); e) Unique Constraints: (Constraint exclusiva), impõe uma exclusividade de linhas. Diferente das Primary Keys, várias unique constraints podem ser definidas na mesma tabela (BEN-GAN, 2010); f) View: (Visões), tabelas virtuais cuja definição existe como objeto no esquema. Diferente de tabelas persistidas, os dados não são armazenados nas visualizações (OPPEL, 2009). Suas definições ficam guardadas como objeto de banco de dados e somente são removidos dele se forem excluídos especificamente (BEN-GAN, 2010). View também pode ser definida como tabelas que não ocupam espaço físico, mas que podem ser utilizadas como tabelas (MACHADO, 1998); g) Tables: (Tabelas) é o objeto que armazena as informações que normalmente possuem referencia com outras tabelas;

20 h) Triggers: (Gatilhos) É um tipo especial de procedimento armazenado (Store Procedure), um procedimento armazenado que não pode ser executado explicitamente (BEN-GAN, 2010). São objetos que não fazem parte do modelo lógico, mas que acabam tornando-se visíveis a um usuário como relação virtual (SILBERSCHATZ; KORTH; SUDARSHAN, 1999, p. 65). Os gatilhos nos produtos SQL são muito particulares e são implementados de maneira diferente (OPPEL, 2009); i) Store Procedures (Prodecimento Armazenado) são módulos de programa armazenado pelo SGBD dentro de servidor de banco de dados (ELMASRI; NAVATHE, 2005). Segundo Ben-Gan (2010) são rotinas armazenadas no servidor que sintetizam os códigos SQL. Estes procedimentos armazenados podem ter parâmetros de entrada e de saída, podem até mesmo retornar um conjunto de resultados; j) Índice: segundo Almeida (2007, p.20) são objetos responsáveis por facilitar e aumenta o desempenho do banco de dados; k) Índices FULL-Text: são objetos especiais derivados de índex para tratar diferentes tipos de dados (ALMEIDA, 2007, p.20). 2.6 LINGUAGEM SQL O Structured Query Language (SQL) é uma linguagem relacional implementada diferente de outras linguagens de computação (OPPEL, 2009). Segundo Ben-Gan (2010), a linguagem SQL foi projetada para consultar e gerenciar dados em sistema de gerenciamento de banco de dados relacionais (RDBMSs). Um RDBMS é um sistema de gerenciamento de banco de dados baseado em um modelo relacional; A SQL ainda não possui das muitas funcionalidades básicas de outras linguagens de programação. Por conta deste motivo ele é chamado de sub-linguagem de dados por conta da frequência que é utilizada em associação com linguagens de desenvolvimento de aplicativos como C e Java, cuja função não foi projetada para manipular dados armazenados em base. O modelo relacional é independente da linguagem, pois pode ser implementado o modelo relacional com diferentes linguagens da SQL. Um exemplo é o C# em um modelo de classe. Hoje em dia é comum ver RDBMS suportando linguagens diferentes de um dialeto da

21 SQL, como o CLR Integration no SQL Server. Conforme Almeida (2007, p. 8), o SQL como o nome diz é uma linguagem de consulta estruturada. Apesar de existirem outros modelos de sistema de banco de dados, no trabalho atual será utilizado o modelo relacional. Este modelo é utilizado pela grande maioria de banco de dados disponíveis no mercado (ALMEIDA, 2007, p. 8). Neste caso será utilizado o SQL Server como banco de dados relacional. Conforme Silberschatz, Korth e Sudarshan (1999) um banco de dados relacional consiste em uma coleção de tabelas, cada uma das quais contém um nome único. Conforme Elmasri e Navathe (2005) a linguagem SQL pode ser considerada um dos maiores motivos para o sucesso dos bancos de dados relacionais no mundo comercial. O nome SQL era chamado inicialmente de Structured English Query Language (SEQUEL), linguagem de pesquisa em inglês estruturada, sendo projetada e implementada pela IBM (ELMASRI; NAVATHE, 2005). A SQL tornou-se padrão por volta de 1986 quando o American National Standards Institute (ANSI) tornou o SQL como uma linguagem padrão para os bancos de dados relacionais (LUCHTENBERG, 2002, p. 10). Conforme Elmasri e Navathe (2005), a ANSI obteve ajuda da International Standards Organization (ISO - Organização Internacional de Padrões) para chegar na versão padrão do SQL do ANSI em 1986, chamado de SQL-86 ou SQL1. Conforme Oppel (2009), o SQL pode ser dividido em 3 tipos de comandos para categorizar, de acordo com as funções: a) a Linguagem de Definição de dados (Data Definition Language - DDL): são comandos utilizados para criar, modificar ou apagar objetos contidos na base de dados, como: tabelas, visualizações, esquemas, domínios, gatilhos e procedimentos armazenados. Para cada comando do tipo DDL existe uma palavra chave associada na linguagem SQL; b) a Linguagem de Controle dos Dados (Data Control Language - DCL): comandos deste tipo permitem ter controle de quem ou o que (um usuário na base de dados pode ser humano ou um programa) tem acesso a objetos em especifico. Resumindo, poderá conceder ou restringir acesso a objetos do banco de dados utilizando comandos DCL. Conforme Date (2000) para executar comandos SQL o usuário deve possuir o privilégio apropriado para a combinação do operador e a operação em questão;

22 c) a Linguagem de Manipulação dos Dados (Data Manipulation Language - DML): os comandos deste tipo são utilizados para inserir, alterar, recuperar ou apagar dados armazenados em objetos nas bases de dados. 2.7 SISTEMA ATUAL Atualmente a empresa KeepIT oferece serviços de monitoramento de BD e não possui internamente uma solução para que esta atividade seja realizada de forma automática. Atualmente é realizado o monitoramento do serviço do Engine Database para avaliar se o status é on-line ou off-line. Para qualquer atividade que envolva monitorar o SQL SERVER, é necessário que um funcionário da empresa acesse o cliente, e utilize a ferramenta SQL Server Management Studio de consulta do SQL Server para obter informações, de memória, processamento, IO, ou seja, tem que acessar o cliente e diretamente o SQL SERVER para conseguir extrair informações importantes tanto para desempenho quanto para garantir a qualidade dos serviços do Banco. 2.8 TRABALHOS CORRELATOS Três trabalhos estão relacionados ao escopo do presente trabalho que são o de Risch (1989), o de Luchtenberg (2002) e o de Almeida (2007). Risch (1989), dos laboratórios de pesquisa da empresa HP, descreve a arquitetura para um sistema de monitoramento de objetos de banco de dados de alto nível. O trabalho ajudou na compreensão de diversos conceitos sobre monitoramento e alertas. Entre as vantagens da arquitetura, podem-se citar o fato de minimizar o peso de processamento do software de monitoramento sobre o banco de dados, o sistema de notificações eficaz e a localização automática de recursos a monitorar. Luchtenberg (2002), descreve o desenvolvimento de um aplicativo chamado NetDBA para o monitoramento do banco de dados Oracle através de uma ferramenta Web. Sua

23 principal vantagem é executar procedimentos administrativos e monitoração básica diariamente de um banco de dados Oracle, sem depender de sua estação de trabalho. Almeida (2007) descreve o desenvolvimento de um sistema de monitoramento de SGBD chamado de Einstein. Que foi idealizado como um sistema comum de monitoramento, porém traz recursos que não estão disponíveis em outras ferramentas analisadas na monografia e procura atender às necessidades dos DBAs. Além disso, aplicativos do tipo serviço (o Einstein Monitor) têm uma forma de desenvolvimento diferenciada de sistemas visuais, pois não possuem componentes e eventos assim como em outros tipos de software para Web ou desktop. Há ainda uma solução comercial da Microsoft chamada de System Center, que é uma família de soluções de gerenciamento de TI. Nesta família existe um produto denominado de Microsoft System Center Operations Manager (SCOM) que possui um complemento (Package) para ser instalado possibilitando monitorar os SGBDs. O produto possibilita: a) monitorar os usuários e funções atribuídas; b) avaliar desempenho; c) monitorar replicação de dados; d) monitorar topologia do banco de dados; e) monitorar os serviços (Jobs); f) monitorar espaço das databases; g) monitorar tempo de resposta para os sistemas que utilizam o SGBD.

24 3 DESENVOLVIMENTO Neste capítulo são descritas as especificações do sistema, as suas características, os principais requisitos, o diagrama de caso de uso, o modelo entidade relacionamento, a operacionalidade do sistema, as tecnologias utilizadas e os resultados obtidos. 3.1 SOLUÇÃO PROPOSTA A solução desenvolvida consiste em um sistema web para monitoramento do SGBD SQL Server, de fácil utilização e que possui uma melhor interatividade com o usuário que irá gerenciar. Isto implica otimizar o tempo de um DBA responsável pelo estado do banco de dados, garantindo assim uma resposta antecipada para evitar problemas com integridade dos dados e o seu desempenho. O sistema possui vários tipos de relatórios em formato PDF, são eles: a) status dos databases; b) percentual de crescimento dos databases; c) quantidade de objetos (view, procedures, tables, triggers). Também foi disponibilizado de forma gráfica para o usuário a situação das bases de dados e o percentual de crescimento. A solução desenvolvida não é funcional para versões do SQL Server inferiores a 2005, devido às funções utilizadas que foram introduzidas somente na versão 2005 ou superiores, e por conta da utilização de Dynamic Management View (DMVs) nas procedures cujo recurso surgiu na versão 2005 do SQL Server. Como infraestrutura de desenvolvimento do sistema foi utilizado o SharePoint Foundation que permite controle de acesso e publicação do sistema e também possui um banco de dados próprio. É possível cadastrar o monitoramento de várias instâncias de SQL Server, garantindo que todos os bancos de dados da empresa fiquem sobre vigilância do mesmo sistema. Para que seja possível realizar o gerenciamento das instâncias, cada instância precisa ser cadastrada, com isto é criado automaticamente um banco de dados para coletar as informações necessárias.

25 A Figura 1 demonstra o fluxo do processo de cadastrar instância de SQL Server que será monitorado. Figura 1 - Fluxo do processo de cadastrar instância de SQL Server O processo se inicia quando o usuário dba acessa o site de monitoramento, utilizando o menu lateral esquerdo e escolhe a opção de Cadastro Servidor. Com isto irá aparecer a tela para realizar o cadastramento da instância, após informar as informações em seus campos devidos, o usuário dba clica no botão para Salvar. Após ter realizado todos estes passos, o sistema irá tentar acessar a instância informada, utilizando o usuário e senha configurados na lista de parâmetros, feito o acesso a instância, inicia o processo para criar uma base de dados, suas tabelas, procedures e dois Jobs para realizar o monitoramento de informações necessárias.

26 A Figura 2 demonstra o fluxo de processo para obter os status das bases de dados. Figura 2 - Fluxo do processo do Job Status A Figura 3 demonstra o fluxo para obter informações das tabelas e bases. Figura 3 - Fluxo do processo do Job Monitoramento

27 Depois de ter cadastrado as instância de SQL Server desejadas, já é possível emitir os relatórios e visualizar a tela de gráficos principais. A Figura 4 demonstra o processo pare realizar a exclusão de uma instância do monitoramento. Figura 4 - Processo pare realizar a exclusão de uma instância do monitoramento Pare realizar a exclusão do monitoramento, basta acessar o site de monitoramento, escolher a opção Excluir Servidor, nesta tela terá um campo contendo a lista das instâncias que estão sendo monitoradas, basta escolher um dos itens e clicar no botão Executar. 3.2 ESPECIFICAÇÃO Nesta seção estão descritos os diagramas elaborados para desenvolvimento do sistema, dentre eles o diagrama de caso de uso e seu detalhamento e o diagrama de atividades, ambos com base na Unified Modeling Language (UML), utilizando a ferramenta Microsoft Visio 2010.

28 3.2.1 Requisitos principais do sistema O Quadro 1 apresenta os requisitos funcionais previstos para o sistema e sua rastreabilidade, ou seja, vinculação com os casos de uso associados. Requisitos Funcionais RF01: O sistema deverá permitir o usuário efetuar login no sistema. RF02: O sistema deverá permitir o usuário cadastrar as instâncias de SQL que vão ser monitoradas. RF03: O sistema deverá permitir o usuário cancelar o monitoramento de uma determinada instância SQL Server. RF04: O sistema deverá emitir relatório de histórico de espaço em disco. RF05: O sistema deverá emitir relatório de previsão de falta de espaço em disco. RF06: O sistema deverá emitir relatório da quantidade de objetos por instância. RF07: O sistema deverá emitir relatório de percentual de crescimento das bases. RF08: O sistema deverá emitir relatório sobre a quantidade de memória utilizado por Database. RF09: O sistema deverá emitir relatórios sobre a utilização de memória por DataBase e IO por DataBase. RF10: O sistema deverá emitir relatório indicando status do banco de dados. RF11: O sistema deverá permitir o DBA controlar o acesso ao sistema Quadro 1 - Requisitos funcionais Caso de Uso UC01 UC02 UC03 UC04 UC05 UC06 UC07 UC08 UC09 UC10 UC11 O Quadro 2 lista os requisitos não funcionais previstos para o sistema. Requisitos Não Funcionais RNF01: O sistema deverá monitorar banco de dados SQL Server 2008R2. RNF02: O sistema deverá ser implementado em C# 3.5. RNF03: O sistema deverá ser web. RNF04: O sistema deverá utilizar a plataforma SharePoint Foundation para hospedar as páginas aspx. Quadro 2 - Requisitos não funcionais

29 3.2.2 Diagrama de casos de uso Esta subseção apresenta na Figura 5 o diagrama de casos de uso do sistema. Figura 5 - Caso de uso O ator Administrador DBA é o usuário que faz a gestão do acesso ao sistema de monitoramento, o mesmo incluir as permissões para a tela de cadastrar instância e excluir servidor do monitoramento. O sistema não possui módulos distintos, todas as telas referenciem o mesmo sistema, sendo simplesmente a tela de cadastrar servidor de monitoramento, excluir servidor de monitoramento, a tela que contém os gráficos do monitoramento e por fim a tela que emite os relatórios do sistema.

30 Na Figura 6, os usuários podem emitir diversos relatórios do sistema. Estes mesmos relatórios são todos arquivados em uma biblioteca do SharePoint, que depois podem ser consultados e visualizados nestes mesmos arquivos. Nesta tela que emite relatório o usuário dba é que irá poder definir quais os usuários que podem executar os relatórios. Figura 6 - Caso de uso O ator usuário pode ser qualquer pessoa que esteja cadastrado no Active Directore do domínio da empresa, logo somente o Administrador dba que poderá retirar o acesso de todos os usuários e incluir somente permissão para usuários privilegiados de acordo com as regras da empresa.

31 3.2.3 Modelo de entidade e relacionamento (MER) O modelo de entidade e relacionamento possui um grande objetivo, que é guardar as informações dos objetos da instância do SQL Server. Todas as entidades são utilizadas pelo sistema, mais precisamente por procedures, para cadastrar as informações desde o nível de tabela até o nível de servidor, sendo que ao emitir relatórios e gerar gráficos são utilizando novamente procedures para retornar as informações destas entidades e mostrar ao usuário. Na Figura 7 podemos visualizar todas as entidades que o sistema necessita. Figura 7 - Modelo de entidade do sistema de monitoramento Já prevendo crescimento do sistema de monitoramento, foi criada uma tabela para informar qual cliente esta sendo monitorado, isto poderá ser usado em um trabalho futuro. Toda estrutura do sistema esta pronta para se tornar flexível e futuramente monitorar outros banco de dados, além do SQL Server.

32 3.2.4 Dicionário de dados A seguir são mostradas as informações detalhadas do modelo de entidade e relacionamento. Os tipos de dados de cada campo são descritos a seguir: a) varchar: Armazena caracteres; b) smallint: Armazena números inteiros; c) int: Armazena números inteiros; d) tinyint: Armazena números inteiros; e) date: Armazena datas. O Quadro 3 apresenta o dicionário de dados da entidade Servidor. Quadro 3 - Dicionário de dados da entidade Servidor O Quadro 4 apresenta o dicionário de dados da entidade ItensLog Quadro 4 - Dicionário de dados da entidade ItensLog

33 O Quadro 5 apresenta o dicionário de dados da entidade BaseDados Quadro 5 - Dicionário de dados da entidade BaseDados O Quadro 6 apresenta o dicionário de dados da entidade LogStatusBaseDados Quadro 6 - Dicionário de dados da entidade LogStatusBaseDados O Quadro 7 apresenta o dicionário de dados da entidade Tabela. Quadro 7 - Dicionário de dados da entidade Tabela

34 O Quadro 8 apresenta o dicionário de dados da entidade LogCrescimentoBaseDados. Quadro 8 - Dicionário de dados da entidade LogCrescimentoBaseDados O Quadro 9 apresenta o dicionário de dados da entidade Cliente. Quadro 9 - Dicionário de dados da entidade Cliente O Quadro 10 apresenta o dicionário de dados da entidade UpgradeServidor Quadro 10 - Dicionário de dados da entidade UpgradeServidor 3.3 IMPLEMENTAÇÃO A seguir são mostradas as técnicas e ferramentas utilizadas e a operacionalidade da implementação.

35 3.3.1 Técnicas e ferramentas utilizadas Para o desenvolvimento do projeto, foi utilizado a linguagem C# e o framework.net 3.5 para auxiliar a construção das camadas de negócio, dados, infra e view. Na camada de dados foram feitos acessos a procedures diretamente, para obter todas informações necessários para apresentar na camada de visualização. A Figura 8 abaixo mostrar a classe acessa os dados chamando uma procedure. Figura 8 - Execução de uma procedure de relatório

36 Nesta classe chamada de BaseDados, foram criados os métodos que obtém informações das instâncias cadastradas como pode ser visto na Figura 9, existindo vários métodos criados para chamar as procedure, neste caso foi realizado a chamada de uma procedure que possui o nome de SP_REL_STATUSDATABASE que retorna cinco colunas contendo as informações de todos as bases de dados da instância que foi solicitado emitir o relatório. Figura 9 - Métodos da classe BaseDados para executar procedures

37 As store procedures que o sistema utiliza e realiza a seleção de informações, com a camada de dados que devolve para a camada de negócio por fim é tratado e exibido no PDF ou através de gráfico, na Figura 10 pode-se visualizar a store procedure que retorna as informações do status atual das bases de dados. Esta informação é atualizada a cada 5 minutos por um Job que é criado automaticamente pelo sistema de monitoramento ao cadastrar a instância. Figura 10 - Procedure do relatório de Status dos DataBases

38 Para que seja possível realizar o retorno destas informações das bases de dados e tabelas, o sistema utiliza Jobs para armazenar as informações necessárias, na Figura 11 podese visualizar os dois Jobs existentes. Figura 11 - Jobs para realizar monitoramento

39 Para criar os relatórios no formato PDF, foi utilizado uma API chamada de itextsharp, que é utilizada na camada de negócio. Segue na Figura 12, o código que gerar o relatório de status das bases de dados da instância selecionado pelo usuário que esta gerando o relatório. Figura 12 - Método responsável por gerar relatório de Status da Base de Dados

40 Para realizar a criação de todos os relatórios foi centralizado na camada de negócio a chamada do método que cria os relatórios. Na Figura 13 pode-se ver a classe que chama o método que gerar os relatórios PDF e grava na biblioteca do SharePoint este arquivo, retornando para camada de view a url do arquivo publicado. Figura 13 - Classe responsável por gerar relatório PDF Para que seja possível gerar este relatório de status, teve que ser criado um Job no SQL Server dinamicamente, que é gerado no momento que é cadastrado a instância para monitoramento, na Figura 14 pode-se ver a construção deste Job, que fica em um arquivo 02_CriaJob.sql. Figura 14 - Criação do Job de Monitoramento

41 Este arquivo 02_CriaJob.sql por sua vez fica salvo em uma biblioteca do SharePoint Foundation, junto com outros diversos Scripts que são executados na hora de cadastrar a instância para o monitoramento, como pode ser visto na Figura 15, existe diversos script para serem executados. Figura 15 - Scripts que ficam na biblioteca do SharePoint

42 Para realizar a extração destas informações do script que esta dentro de uma biblioteca do SharePoint e efetuar a execução na instância do SQL Server, foi criado alguns métodos, o mais importante segue na Figura 16. Figura 16 - Método que extrai as informações do Script Este método de extrair as informações dos scripts que estão na biblioteca, é utilizado em um laço de repetição que contém os objetos script para serem executados na ordem correspondente como pode ser visto na Figura 17. Por conta disto existe uma coluna chamada ordem. Figura 17 - Laço de repetição para executar Script no SQL Server

43 3.3.2 Operacionalidade da implementação Para realizar o monitoramento de uma instância SQL Server, é necessários acessar o menu esquerdo chamado Cadastro Servidor, nesta tela terá que ser informado o endereço completo da instância do SQL Server, informando o nome do servidor e da instância, para que seja automaticamente conectado, ao realizar o cadastro e clicar no botão Salvar inicia o processo de criar uma base de dados, suas tabelas, procedures e Jobs que o sistema irá utilizar para realizar o gerenciamento da instância. A Figura 18 mostra a tela de cadastro de Servidor SQL Server. Figura 18 - Cadastro de Servidor SQL Server

44 Para que o sistema consiga criar uma base de dados no SQL Server, e consiga gerar todas as informações para gerenciamento, é necessário criar vários scripts.sql utilizando a linguagem T-sql, a partir disto o sistema consegue criar a base de dados, as tabelas, os jobs e todos os objetos necessários, para isto fui utilizado uma técnica de criar arquivos separadas para a criação de cada objeto, incluido eles todos em uma biblioteca do SharePoint, assim o sistema acessar esta biblioteca, obtem em ordem de execução os arquivos, extrai as informações deles e executa na instância que será monitorada. A Figura 19 mostra a biblioteca que contém todos os scripts utilizados pelo sistema. Figura 19 - Script utilizados pelo sistema Este sistema não utiliza nenhuma configuração em arquivos separados, como por exemplo WebConfig, que normalmente é utilizado em aplicações que usam o IIS para publicar os sites em ASPX. Para isto é utilizado uma lista do SharePoint que irá guardar todas as informações de parametrizações, tais como nome do usuário e senha que será utilizado para acessar a instância do SQL Server, tal usuário e senha são únicos para todas as instância que forem incluidas para realizar o monitoramento.

45 Esta lista de parâmetros não é visivel para usuários que não tiverem permissão de leitura diretamente nela, isto é feito através da funcionalidade do SharePoint de retirar todas as permissões na lista que herda do Site, e incluir somente permissão para o usuário que desejar, que neste caso será o DBA, mas através de programação, consegue-se acessar esta lista elevando permissão. A Figura 20 mostra a lista de parâmetros utilizada pelo sistema. Figura 20 - Lista de parâmetros

46 No sistema existe uma lista que contém quais todos os relatórios que o sistema esta disponibilizando para ser executado e gerado um arquivo PDF, que por fim é gravado na biblioteca do SharePoint e mostrado ao usuário que esta executando este relatório. Estes itens na lista de relatório, são totalmente associados ao código fonte do sitema, pois se não existir o item nesta lista não irá aparecer na tela de realtório e o sistema não irá encontrar informações sobre ele. A Figura 21 que mostra a lista onde é feito a configuração dos relatórios. Figura 21 - Lista de relatórios

47 Para que o sistema consiga acessar as listas e bibliotecas do SharePoint, foi criado uma lista de Endereços, nela é configurado a url dos itens que o sistema irá utilizado, logo não é necessários colocar diretamente no código fonte estes endereços, assim ficando um código mais flexível e dinâmico, para que possa ser realizado implementações mais simples no futuro. A Figura 22 mostra a lista de endereços de suas páginas que é utilizado no sistema de monitoramento. Figura 22 - Lista de endereços Url do Sistema

48 Para executar os relatórios, existe o menu superior chamado Relatório que irá mostrar uma tela com dois campos. No primeiro terá que ser selecionado o servidor que deseja extrair as informações, e no segundo campo é selecionado qual o tipo de relatório que deseja gerar, ao selecionar os dois itens, basta clicar no botão Gerar, com isto o sistema executa uma procedure na instância do SQL Server selecionado, e extrair todas as informações necessárias para gerar um PDF. A Figura 23 mostra a tela para gerar relatório. Figura 23 - Gerar relatório A principal tela de visualização das informações importantes da instância do SQL Server, fica no link chamado de Visualiza Geral, nesta tela será mostrado 4 gráficos tipo pizza, que irá informar, as maiores bases em questão de tamanho, juntando Master Database Files (MDF) e Log Database Files (LDF). No segundo gráfico será informado as bases que mais consomem memória ambos os gráficos tem uma associação grande, pois normalmente a maior base de dados esta consumindo uma grande quantidade de memória, e isto pode ser analisado o motivo de crescimento. Os dois últimos gráficos contém as informações sobre a quantidade de Central Processing Unit (CPU) que esta sendo utilizado pela base de dados e o outro o Input/output (IO) da base de dados, ou seja qual base de dados que esta fazendo mais escrita e leitura no Hard Disk. Nestes gráficos também possuem uma lógica entre as informações, as bases de dados que mais consomem CPU estão realizando também muita escrita e leitura.

49 Com estas informações pode-se realizar uma análise da instância e verificar os motivos de tais dados, e podendo realizar um trabalho próativo para melhorar o desempenho da instância e prevenir possíveis problemas, tais como espaço em disco e falta de memória. Na Figura 24 mostra a tela que possui os gráficos para monitoramento. Figura 24 - Tela de visualização Geral por Instância

50 Para excluir uma instância do gerenciamento, basta acessar o menu na esquerda chamado de Excluir Servidor, após isto irá aparecer uma tela que mostrar em um campo todas as instâncias que estão sendo monitoradas, basta selecionar qual item deseja e clicar no botão executar. Ao executar o passo de exclusão o sistema estará acessando a instância, excluindo os Jobs que o sistema criou no cadastramento do monitoramento, e por fim exclui a base de dados criada pelo sistema, assim retirando qualquer objeto do SQL Server que foi utilizado pelo sistema de monitoramento, depois de realizar todas as tarefas na instância de SQL o sistema exclui o item da lista do SharePoint, que contém informação dos servidor que estão sendo monitoradas. A Figura 25 mostra a tela de excluir monitoramento SQL Server. Figura 25 - Excluir Monitoramento

51 Todos relatórios que são gerados no sistema de monitoramento automaticamente são inseridos em uma biblioteca do SharePoint, esta por sua vez guarda e disponibiliza para acessar em qualquer momento, assim pode-se ter um histórico de todos os relatórios que foram executados e quais eram as informações que continham naquele momento, para isto foi criado a biblioteca de relatórios. A Figura 26 mostra a biblioteca guardando vários relatórios que foram executados, todos eles são compostos por nome do relatório junto com um numéro indentificador único para que não se repita o nome dos arquivos PDFs. Figura 26 - Biblioteca de relatórios