Páginas

25 de mai. de 2012

Comparando schemas ou objetos de Bancos de Dados diferentes

Olá pessoal,

     No artigo de hoje vou apresentar uma funcionalidade muito útil do SQL Developer 3.1, que eu acredito que pouca gente conhece (pois não existia em versões anteriores da ferramenta), e que pode ajudar DBAs e/ou Desenvolvedores, a comparar a estrutura de objetos de schemas de Bancos de Dados distintos. Na versão em português do SQL Developer 3.1, esta funcionalidade chama-se Diferenças em Bancos de Dados e está localizada no menu Ferramentas. Ela é ótima para comparar objetos entre 2 ambientes de BD, tais como os ambientes de Desenvolvimento ou Homologação e o ambiente de Produção.

     Ao comparar os objetos a ferramenta exibe uma janela contendo o script DDL do objeto  na origem e no destino e destaca o que está diferente entre os 2 BDs. Para efetuar os testes, o único detalhe para que tudo funcione corretamente, é: conecte-se no BD destino sempre com o usuário  dono do(s) objeto(s) ou esquema a ser(em) comparado(s). Se você tentar se conectar no BD destino com o usuário SYS, por exemplo, você não verá os resultados da comparação. Além de não funcionar, a ferramenta não exibirá aviso algum e você poderá pensar que trata-se de um bug (eu passei por isso)!

    Para demonstrar a funcionalidade, seguiremos o passo-a-passo abaixo para comparar a estrutura da tabela EMPLOYEES, do schema HR, entre um BD de produção, chamado BD_PROD, e um BD de homologação, chamado BD_HOMOLOG:
 
Observações: Para seguir o passo-a-passo abaixo é necessário ter o schema HR instalado nos BDs de origem e destino. Para mais informações, leia o artigo Instalando o schema de exemplo HR.


Passo-a-passo

1- Clique no menu Ferramentas do SQL Developer (somente versão 3.1) e depois clique em Diferenças em Bancos de Dados;

2- Ao abrir a tela da Imagem 01, selecione nos campos Conexão de Origem Conexão de Destino, os nomes das conexões dos BDs que você deseja comparar e clique em seguida no botão Próximo;
   
Imagem 01 - Etapa 1 da comparação
  
3- Ao aparecer a tela da Imagem 02, deixe marcado somente o campo Tabelas e clique no botão Próximo;
   
Imagem 02 - Etapa 2 da comparação


4Ao aparecer a tela da Imagem 03, efetue os seguintes procedimentos:
     a) Campo Nome: digite o valor EMPLOYEES
     b) Campo Esquema: selecione o valor HR
     c) Campo Tipo: selecione o valor TABLE
     d) Clique no botão que contém a imagem do sinal  , para finalizar a seleção da tabela a ser comparada

Imagem 03  - Etapa 3 da comparação

5Ao aparecer a tela da Imagem 04 clique no botão Finalizar:



6- Pronto! A tela da Imagem 05 mostra os resultados da comparação. O painel esquerdo inferior exibe o script DDL do objeto na conexão de origem, e o painel direito inferior exibe o script DDL do objeto na conexão de destino. As linhas com destaque em lilás indicam as diferenças do objeto.


Imagem 05 - Resultados da comparação

 
Bom pessoal, por hoje é só!

[]s
  

2 comentários:

  1. Bacana o post Fábio.
    Mês passado realizei um compare utilizando o plsql dev, porém a visualização do sql dev me parece ser mais interessante.

    Abs.
    Daniel Barros

    ResponderExcluir
    Respostas
    1. Daniel, o SQL Developer está evoluindo bastante. Muitos alunos comentam que PLSQL Developer era muito melhor, mas eu nunca usei pq não é free. O SQL Developer já atende as minhas necessidades sem custo algum de licenciamento!

      []s

      Excluir