Dicas para um DBA Iniciante – Inventário

E ai galerinha, tudo bem com vocês?

Dando continuidade à nossa série de posts com algumas dicas para DBAs que estão iniciando em um novo emprego, quero sugerir como criar um inventário simples de um ambiente de banco de dados SQL Server.

Inicialmente a ideia de criar um inventário parece ser uma atividade de baixa prioridade para um DBA, mas posso garantir que é extremamente necessário e deveria ser a primeira tarefa em sua imensa lista de responsabilidades.

Vamos imaginar a seguinte situação, você acaba de iniciar em uma empresa e logo na primeira semana alguém vem à sua mesa desesperadamente dizendo que o servidor XPTO_01 está parado e que este problema precisa ser resolvido o mais rápido possível.

Antes de iniciar qualquer atendimento, gostaria que você tentasse responder alguns questionamentos:

1)      É um servidor de PRODUÇÃO?
2)      Qual o IP de acesso a este servidor?
3)      Qual a porta de acesso á instância de banco de dados SQL Server?
4)      Qual a versão e edição do SQL Server instaladas neste servidor?
5)      É um servidor suportado pela sua equipe?

Com um inventário bem organizado e atualizado, estes questionamentos seriam facilmente respondidos e qualquer problema poderia ser resolvido de forma muito mais rápida e eficiente.

Existem várias ferramentas disponíveis no mercado que possibilitam o levantamento de informações sobre um parque de servidores, mas dentre todas quero destacar uma ferramenta chamada Quest Discovery Wizard (QDW).

Esta ferramenta é gratuita e disponibilizada pela Quest, que é uma empresa especializada em suporte à servidores de banco de dados.

Com o QDW é possível descobrir todas as instâncias de SQL Server disponíveis em um determinado range de IPs ou através de um domínio válido, conforme ilustrado na imagem.

Inventario_1

Após o preenchimento de um range de IPs ou de um domínio válido, iniciamos a varredura através do botão Start e como resultado obtemos uma lista detalhada das instâncias de banco de dados SQL Server existentes, conforme ilustrado na imagem.

Inventario_2

Caso o DBA já possua acesso às instâncias listadas, é possível levantar mais informações através do botão Collect Data, conforme ilustrado na imagem.

Inventario_3

Com certeza vocês devem estar perguntando como armazenaremos essas informações para consultas posteriores, certo?

Utilizaremos um pequeno modelo de dados, composto inicialmente por uma tabelas, para armazenar as informações de todas as instâncias de SQL Server existentes em nosso ambiente.

Tabela SQLInstance

Id Id de identificação da instância
IdServer Id de identificação do servidor
Name Nome da instância
Version Versão do SQL Server
Build Número da versão do SQL Server
SP Service Pack
Edition Edição do SQL Server
Port Porta de conexão com a instância

Para a criação do banco de dados SISGTR e da tabela SQLInstance utilizamos o seguinte script T-SQL:

———————————————————————————————–
CREATE DATABASE SISGTR
GO
USE SISGTR
GO
CREATE SCHEMA [servers]
GO
CREATE TABLE [servers].[sqlinstance](
[Id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[IdServer] [int] NULL,
[Name] [varchar](50) NULL,
[Version] [varchar](50) NULL,
[Build] [varchar](50) NULL,
[SP] [varchar](50) NULL,
[Edition] [varchar](50) NULL,
[Port] [varchar](50) NULL
)
———————————————————————————————–

Através da ferramenta QDW é possível gerar um arquivo .CSV com todas as informações necessárias para a tabela SQLInstance, conforme ilustrado na imagem.

Inventario_5

Utilizando a ferramenta Import/Export Wizard do SQL Server importamos as informações para a tabela SQLInstance através dos seguintes passos:

1) Botão direito no banco de dados SISGTR -> Tasks -> Importa Data

Inventario_6

2) Clicar no botão Next

Inventario_7

3) Selecionar a origem Flat File Source -> Selecionar o arquivo .CSV -> Clicar no botão Next

Inventario_8

4) Selecionar o destino SQL Server Native Cliente -> Selecionar a instância -> Selecionar o banco de dados

Inventario_9

5) Selecionar a tabela Servers.SQLInstance -> Clicar em Next

Inventario_10

6) Finalizar o processo de carga clicando em Finish

Inventario_12

Após este processo temos um banco de dados com o inventário de todas as instâncias SQL Server existentes em nosso ambiente.

Espero que tenham gostado e não percam na próxima semana o post sobre Backup.

Grande abraço.

18 ideias sobre “Dicas para um DBA Iniciante – Inventário

  1. AndersonSouza

    Excelente materia, certamente irá ajudar muitos profissionais que estão trabalhando com banco de dados, sejam DBAs ou não.

    Resposta
  2. Pingback: Qual o Papel e o Diário de um DBA? | Alex Souza

  3. rbritooliveira

    to acompanhando Vitor, tenho todo esse controle em planilhas que criei, porem esse software é muito bom acabei de implementar…kkk, muito bom artigo!! parabens!!

    Resposta
  4. Marcio

    Vitor, meu server fica em um datacenter, estou colocando o IP dele, mas não está conectando. A ferramenta tem que estar instalada na mesma rede do banco?

    Resposta
      1. vitortff Autor do post

        Marcio,

        Caso queira ler sobre um determinado assunto é só me avisar que escrevo um post.

        Grande abraço.

      2. Marcio

        Opa Vitor,

        gostaria de saber como validar uma replicação transacional? Por exemplo, como eu consigo averiguar que os obejtos(triggers, procedures, constraints e etc..) foram replicados no meu banco.

        Tive um problema, que alguns desses objetos não estavam no banco replicado.

        Abraço.

    1. vitortff Autor do post

      Grande Junior, tudo bem contigo?

      Fico muito contente por ter curtido o artigo e a ferramenta.

      Achei realmente muito útil para montar um inventário bacana.

      Também estou sempre acompanhando seus posts no blog e são sempre de altíssimo nível.

      Grande abraço.

      Resposta
    1. Vitor Fava Autor do post

      Verônica, tudo bem?

      Na verdade você precisa garantir que o SQL Browser esteja habilitado no servidor onde estão suas instâncias.

      Com isso será possível capturar as informações e criar seu inventário.

      Pretende criar uma base de dados para isso?

      Grande abraço.

      Resposta

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.