1 Introdução - Projeto Pesquisa

Propaganda
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:
______________________________________________________
Prof. Mauro Marcelo Mattos, Doutor - Orientador, FURB
Membro:
______________________________________________________
Prof. Cláudio Ratke, Mestre - FURB
Membro:
______________________________________________________
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
Caso de Uso
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
UC01
UC02
UC03
UC04
UC05
UC06
UC07
UC08
UC09
UC10
UC11
Quadro 1 - Requisitos funcionais
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
52
Existe também no SharePoint uma lista de Servidor, esta lista guarda as informações
dos servidores que foram cadastrados para realizar o monitoramento do SQL Server. A Figura
27 mostra a lista que guarda estas informações no sistema de monitoramento.
Figura 27 - Lista de instância monitoradas
3.4 RESULTADOS E DISCUSSÃO
O desenvolvimento da comunicação entre o SharePoint e o SQL Server retornando as
informações necessárias para obter o resumo das informações mais importantes para um DBA
analisar foram alcançadas neste projeto.
A meta do projeto foi gerar os gráficos e as informações de fácil visualização para o
administrador das bases de dados, assim podendo tomar ação a partir destas informações
consolidadas no portal do cliente.
Em relação aos trabalhos correlatos, o trabalho de Luchtenberg (2002) descreve uma
aplicação web voltada para gerenciamento de SGBD Oracle. Neste trabalho utiliza-se a
plataforma SharePoint para a publicação das telas, scripts, relatórios e parametrizações.
O trabalho de Almeida (2007) também é uma aplicação web destinada a monitorar
SGBD SQL Server até a versão 2005 e não utiliza plataforma de colaboração como suporte.
A Microsoft disponibiliza uma solução denominada Microsoft System Center
53
Operations Manager (SCOM) a qual possui um módulo para realizar monitoramento das
instancias de SQL Server. Contudo, esta é solução comercial com um custo que inviabiliza
sua utilização em pequenas organizações. Da mesma forma, a solução da Microsoft não
utiliza a plataforma de colaboração que possui o nome de SharePoint para publicar e
centralizar as informações de monitoramento conforme foi apresentado neste trabalho.
54
4 CONCLUSÕES
Neste trabalho apresentou-se o desenvolvimento de um sistema para realizar
monitoramento de SGBD SQL Server, que fosse de fácil utilização e integrasse com o produto
SharePoint Foundation que é utilizado nas empresas para a construção de portais. O objetivo
final era garantir uma maior segurança no monitoramento das instâncias SQL Server,
prevenindo possíveis problemas e disponibilizando informações úteis para que o usuário
administrador do banco de dados possa trabalhar pró ativo, focando em melhorar a qualidade
do serviço prestado pelo SQL Server.
Para que fosse possível criar este sistema de monitoramento, foi necessário criar várias
camadas na arquitetura da aplicação, cada camada tem uma função específica, sendo a
camada de View para mostrar as informações ao usuário, a camada de negócio que contém os
métodos para tratar as regras de negócio, a camada de infra que possui os métodos que
encapsulam funções úteis do SharePoint e por fim a cada de dados que faz todo o
encapsulamento dos métodos que acessam diretamente o banco de dados.
Foi utilizado somente um framework, o 3.5 .NET da Microsoft, utilizando também
referência a API do SharePoint. Em todos os níveis de camadas foram utilizado tanto o
framework .NET quanto a API do SharePoint, pois entre elas trafega o objeto que representa
o site que esta sendo acesso pelo usuário.
Este trabalho demonstrou que é possível realizar monitoramento de todas as instâncias
de SQL Server de uma empresa e centralizar estas informações no portal, através de uma
plataforma de colaboração que é o SharePoint Foundation 2010, totalmente gratuita, com
administração facilitada através de gráficos e relatórios. Com o desenvolvimento deste
trabalho foi possível concluir algumas vantagens:
a) centralizar informações das instâncias em tempo real;
b) monitorar possíveis problemas de performance;
c) monitorar falta de espaço em disco;
d) monitorar excesso de IO na base de dados.
Conclui-se com a realização deste trabalho o aumento dos conhecimentos sobre as
aplicações desenvolvidas para o ambiente web, o que compõem o seu desenvolvimento e as
integrações que são possíveis de realizar com a plataforma de colaboração SharePoint
Foundation 2010. A integração direta com o SQL Server sendo que foi deixado flexível o
55
sistema para adaptar para outros SGBDs, também foram responsáveis por grande aumento de
conhecimento nesta área.
4.1 EXTENSÕES
Para dar continuidade ao sistema, pode-se desenvolver a comunicação entre o sistema
de gerenciamento que fica na empresa que realizada a prestação de serviço para seus clientes
com o próprio sistema instalado nos seus clientes. Assim pode-se criar uma central de
gerenciamento de seus clientes, facilitando a manutenção dos SGBDs.
Outra extensão que pode ser desenvolvida, é a adaptação do sistema para comportar
diferentes SGBDs, além do SQL Server, pode-se monitorar Oracle, MySQL e outros, com isto
tornará o sistema mais flexível e conseguirá atingir maior número de clientes monitorados.
Um item que não foi desenvolvido por não fazer parte do escopo foi à possibilidade de
monitorar os mirrorings, fazendo com que o sistema de monitoramento detecte quais são as
bases de dados que estão sendo monitoradas, o tempo de delay para realizar a replicação, e o
status atual da quantidade de itens que foi replicado podendo também agregar isto aos
gráficos e relatórios do sistema.
56
REFERÊNCIAS BIBLIOGRÁFICAS
ALMEIDA, Henrique Gurgacz de. Einstein: sistema de monitoramento de SGBD. Curitiba:
s/e, 2007. 85p. Disponível em: <http://obusca.com/Sistema-de-Monitoramento-de-SGBD-DOC.html>. Acesso em: 20 set. 2011.
BEN-GAN, Itzik. Microsoft SQL Server 2008: fundamentos em T-SQL. Porto Alegre:
Bookman, 2010. 412p. (Coleção Microsoft/Bookman)
DATE, C.J. Introdução a sistemas de banco de dados. 7. ed. Rio de Janeiro: Campus, 2000.
DAVENPORT, Thomas; PRUSAK, Laurence. Conhecimento empresarial. Rio de Janeiro:
Campus, 1998.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. São
Paulo: Pearson Education do Brasil; Addison Wesley, 2005. 724p.
ENGLISH BILL, Brian A.; MARK, F. Microsoft SharePoint 2010 Administrator’s
companion. Redmond, Wash, 2011.
GARCIA-MOLINA, Hector; ULLMAN, Jeffrey D; WIDOM, Jennifer. Implementação de
sistemas de bancos de dados. Rio de Janeiro: Campus, 2001. 685p.
HOTEK, Mike. Microsoft SQL Server 2008: passo a passo. Porto Alegre: Bookman, 2010.
533p. 1 CD-ROM. (Coleção Microsoft/Bookman)
LIMA, Iremar Nunes. O ambiente web banco de dados: funcionalidades e arquiteturas de
integração. Rio de Janeiro: Departamento de Informática/PUC-Rio, 1997.
LUCHTENBERG, Rodrigo. Ferramenta web de monitoração, administração e extração
de informações de um SGBD Oracle. Blumenau, 2002. 56 f. Trabalho de Conclusão de
Curso (Graduação em Ciências da Computação) - Universidade Regional de Blumenau.
Disponível em: <http://www.bc.furb.br/docs/MO/2002/257304_1_1.pdf>. Acesso em: 10 nov.
2011.
MACHADO, Felipe Nery Rodrigues; ABREU, Mauricio Pereira de. Projeto de banco de
dados: uma visão prática. 4. ed. São Paulo: Erica, 1998. 298p.
MAGALHÃES, Ivan Luizio; PINHEIRO, Walfrido Brito. Gerenciamento de serviços de TI
na prática: uma abordagem com base na ITIL, inclui ISO/IEC 20.000 e IT Flex. São Paulo:
Novatec, 2007. 667p. (Gerenciamento de TI)
MISTRY, Ross; MISNER, Stacia. Introducing Microsoft SQL Server 2008R2. Redmond,
Washington: Microsoft Press, 2010.
OPPEL, Andy. SQL: um guia para iniciantes. 3. ed. Rio de Janeiro: Ciência Moderna, 2009.
577p.
RISCH, T. Monitoring database objects. Hewlett-Packard Laboratories, Amsterdam, 1989.
57
SILBERSCHATZ, Abranham, KORTH, Henry F; SUDARSHAN, S. Sistema de banco de
dados. 3 ed. São Paulo: Makron Books, 1999.
TAMER, O. M. A new foundation. Database programming & design, s/l, v. 10, n. 3, p. 385, mar. 1997.
58
APÊNDICE A - Detalhamento dos casos de uso
O Quadro 11 apresenta o detalhamento do caso de uso “Efetuar Login”.
Quadro 11 - Caso de uso “Efetuar Login”
59
Quadro 12 apresenta o detalhamento do caso de uso “Cadastrar instância”.
Quadro 12 - Caso de uso “Cadastrar Instância”
60
Quadro 13 - apresenta o detalhamento do caso de uso “Excluir monitoramento”.
Quadro 13 - Caso de uso “Excluir monitoramento”
61
Quadro 14 apresenta o detalhamento do caso de uso “Manter acesso ao sistema”.
Quadro 14 - Caso de uso “Manter acesso ao sistema”
Quadro 15 apresenta o detalhamento do caso de uso “Emitir relatório de histórico de
espaço em disco”.
Quadro 15 - Caso de uso “Emitir relatório de histórico de espaço em disco”
62
Quadro 16 apresenta o detalhamento do caso de uso “Emitir relatório da quantidade de
objetos por instância”.
Quadro 16 - Caso de uso “Emitir relatório da quantidade de objetos por instância”
63
Quadro 17 apresenta o detalhamento do caso de uso “Emitir relatório de percentual de
crescimento das bases”.
Quadro 17 - Caso de uso “Emitir relatório de percentual de crescimento das bases”
64
Quadro 18 apresenta o detalhamento do caso de uso “Emitir relatório de memória
utilizado por Database”.
Quadro 18 - Caso de uso “Emitir relatório da quantidade de memória utilizado por Database”
65
Quadro 19 apresenta o detalhamento do caso de uso “Emitir relatório da quantidade de
I/O por Database”.
Quadro 19 - Caso de uso “Emitir relatório da quantidade de I/O por Database”
66
Quadro 20 apresenta o detalhamento do caso de uso “Emitir relatório indicando o
status do banco de dados”.
Quadro 20 - Caso de uso “Emitir relatório indicando o status do banco de dados”
Download