Ir para o conteúdo principal

[SPIKE] - Utilização do OpenDBDiff para comparar estruturas e bases de dados


FOTO


image-1653281748453.png

PIPEFY CARD ID 531128692

OBJETIVO

Apresentar a formautilização corretado OpenDBDiff para comparar estrutura de comparar basesbanco de dados usando o OpenDBDiff e o Compare Tool do Visual Studio e a sua importância,dados, assim como umos estudodados dedas caso para exemplificar a necessidade de utiliza-los.tabelas.

JUSTIFICATIVA

Criar boas práticas de replicação de estrutura de banco de dados

ENVOLVIDOS

Desenvolvimento do Estudo:

  • Denizard Dimitri Camargo

Product Owner:

  • Pedro Henrique de Andrade Gomes

Coordenador de Análise e Gestão de Dados:

  • Abdenildo Deividy Sobreira dos Santos 

     

    GLOSSÁRIO

    • O que é o Grafana?
    • Como funciona?
    • Primeiros passos para utilização do Grafana
    • Conclusão
    • Referências


    O que é o GRAFANA™ ?OpenDBDiff?

    Uma ferramenta de comparação de banco de dados para Microsoft SQL Server 2005+ que relata diferenças de esquema e cria um script de sincronização.

    image-1644417988082.pngimage-1653282008152.png

    image-1644418013322.gifimage-1653282019703.png


     

    Como funciona?

    OOpen GrafanaDBDiff funcionapode emsincronizar composiçãoe comcomparar outros 2 serviços queseguintes são:componentes de um banco de dados:

    • Telegraf:Tabelas Funciona(incluindo Opções de Tabela como umvardecimal, Agentetexto em linha, etc.)
    • Colunas (incluindo Colunas Calculadas, opções XML, Identidades, etc.)
    • Restrições
    • Índices (e índices XML)
    • Esquemas XML
    • Tipos de coleta de Métricas (CPU, Storage, et cetera..).tabela
    • Influxdb: BancoTipos de dados ondedo ficausuário armazenado(UDT)
    • as
    • Objetos MétricasCLR para(Assemblies, alimentaçCLR-UDT, CLR-Store Procedure, CLR-Triggers)
    • Gatilhos (incluindo Gatilhos DDL)
    • Sinônimos
    • Esquemas
    • Grupos de arquivos
    • Visualizações
    • Funções
    • Procedimentos da loja
    • Funções/Esquemas de Partição
    • do
    • Comercial
    • Dashboard.
    • Funções

    image-1644418196843.png

     


    IMPLEMENTAÇÃO - Primeiros passos para utilizaçInstalação do Grafana


    USE master;
    GO
    CREATE LOGIN [telegraf] WITH PASSWORD = N'senh@123';
    GO
    GRANT VIEW SERVER STATE TO [telegraf];
    GO
    GRANT VIEW ANY DEFINITION TO [telegraf];
    GO

    image-1644419929095.pngGitHub

    • Instalação do Docker 

    image-1644418261976.gif

    Para início da utilização é necessário instalar o Docker no ambiente, usando o link ao lado (Docker Desktop). O ambiente envolvido será windows, então a instalação será para esse SO.

    Após a instalação do ambiente de Conteinerização, é necessário subir as imagens imagens do Grafana, Influxdb e Telegraf no Docker pelo CMD usando os comandos:

    # Criação da rede localnet
    $ docker network create localnet
    
    # Criação do volume pro grafana no docker
    $ docker volume create grafana-storage
    
    # Definição em qual porta o Grafana vai rodar
    $ docker run -d -p 3000:3000 --name=grafana --net localnet -v grafana-storage:/var/lib/grafana grafana/grafana
    
    # Definição de qual porta o Influx vai rodar
    $ docker run -p 8086:8086 --name=influxdb --net localnet -v D:\SQL\Influx:/var/lib/influxdb influxdb
    
    # Comando para baixar o arquivo dezip configuração do Telegraf na pasta local
    $ docker run --rm telegraf --net localnet telegraf config > telegraf.conf

    Após a execução do último comando vamos abrir o arquivo de configuração do Telegraf com o editor de texto de sua escolha e alterar o código de configuração:

    image-1644418902830.png

    image-1644420113293.png

    o código de configuração do telegraf se encontra neste link ao lado - Telegraf.conf

    Após a configuração do arquivo do telegraf vamos subir a imagem dele no Docker pelo CMD utilizando o comando:

    # Montagem do Telegraf com arquivo de conf setado
    $ docker run -v D:\SQL\telegraf.conf:/etc/telegraf/telegraf.conf:ro --name=telegraf --net localnet telegraf

    Neste ponto, 3 contêineres estarão funcionando no docker, aqui está o que você verá no Docker Hub:

    image-1644420356071.png

    Sendo o Grafana definido na porta 3000 e o Influxdb na porta 8086 podendo ambos serem acessados após a instalação por estes links:

    image-1644420774873.pngimage-1653282570842.png

     

    image-1644420834003.pngimage-1653282732513.png

    O usuário

    e
      a
    • Está senhapronto padrãpara ser utilizado

    image-1653282815864.png

     

    Utilização

    Preencher os campos do Grafanabanco ede admin/admin,origem(Source podendodatabase), sercom alteradoos depois.seguintes dados:

    • Servidor.
    • Tipo de autenticação.
    • Usuário.
    • Senha.
    • Banco de dados.

    image-1653283650240.png

    Neste ponto

    iremos

    Preencher configuraros ocampos Datasourcedo nobanco Grafanade paradestino(Destination conexão com Server que no caso e o Influxdb.database):

    image-1644421089913.pngimage-1653283768390.png

     

    Fazer comparação das bases

    image-1653283870097.png

    image-1644421126236.pngAtualizar a estrutura.

    image-1644421354821.pngimage-1653284410585.png

     

    Entendendo as cores

    Verde: Cria novos objetos estruturais, da origem ao destino, por exemplo: criar uma nova tabela.

    LogoAzul: apósAltera asum configuraçõesobjeto iniciais seriaexistente, possivelda conectarorigem ao destino, por exemplo: renomeia uma coluna.

    Vermelho: Indica que o Telegrafobjeto existe no destino e não na origem, portanto não será efetuada nenhuma mudança ao Influxdbatualizar.

     

    Pode-se obter o script de sincronização para injetar as métricas necessárias para alteração consumoconforme do Grafana, pórem o meu estudo parou até este ponto devido ao Erro apresentado abaixo:necessidade.

    image-1644421651370.pngimage-1653284802144.png

    Não

     sendo possível conectar ambos.


    CONCLUSÃO

    Após estudos e análise da implementação do Grafana,OpenDBDiff, verifiqueiqueda constatado que de fato esta é uma soluçferramenta de grande utilidade quando se quer fazer comparação, sincronização parae monitoramento severamente eficaz devido a possibilidadeatualização de implementaçãoestruturas eme/ou qualquerdados tipo deno Sistema Operacional tendo suporte também a diversos Sistemas de Gerenciamento de Banco de dados.dado EntretantoMicrosoft deveSQL levarServer em2005+. consideração

    de

     que como o estudo apresentado acima não foi bem sucedido, a implementação do Grafana deverá ter outra abordagem, para sua total utilização.

    REFERÊNCIAS