Pergunta

Nossos clientes usam bancos de dados SQLServer / Oracle. Ao longo dos anos, enviamos-lhes muitas scripts de atualização que tiveram de executar manualmente. Na maioria das vezes, tudo correu suave, mas de vez em quando um script não foi executado completamente até o final ou teve alguns erros (que não foram detectados no momento da atualização). Além disso, às vezes até "usuários inteligentes", acrescentou indexa / tabelas para os próprios bancos de dados, por qualquer motivo. Mais tarde, essas irregularidades levar a problemas.

Agora eu tenho a tarefa de descobrir uma maneira para verificar / validar nossos bancos de dados de clientes contra o nosso próprio esquema de banco de dados (tabelas, Datatypes, índices, visualizações, ...). A saída deve ser algum tipo de arquivo de diferença indicando o que está faltando / o que não deve ser no banco de dados. Eu poderia fazer isso no código (C ++) de dentro de nossa aplicação ou posso criar uma ferramenta externa para apenas esta finalidade.

Agora, antes de iniciar a codificação, eu queria perguntar se já existe uma ferramenta lá fora, que iria produzir os resultados necessários, ou que pelo menos poderia me ajudar a produzir um arquivo xml decente do nosso mestre-bases de dados (Oracle e SQLServer) ? Ou há uma biblioteca que poderia me ajudar a escrever a minha própria ferramenta?

Foi útil?

Solução

Eu usei esta técnica antes e não requer a compra de quaisquer ferramentas.

Enterprise Manager possui um recurso "Criar Script". Executar esta em seu banco de dados de referência e base de dados de comparação. Selecione as opções apropriadas para gerar scripts para os objetos que lhe interessam. Em seguida, basta comparar os dois arquivos gerados com a sua ferramenta de comparação favorito.

Você pode fazer um procedimento semelhante com ferramentas Oracle que lhe permitem exportar os scripts DDL.

Outras dicas

Há três opções usando ferramentas de Red Gate:

  1. Ter seu cliente executar a comparação. Você precisaria convencer o seu clientes a comprar uma licença de SQL Compare e enviar-lhes um esquema instantâneo de seu banco de dados.
  2. Escreva um aplicativo do seu próprio usando o Red Comparação SQL SDK do Gate ($ 595 para 10 distribuições) que podem ser executados no local do cliente.
  3. Pergunte ao seu cliente para enviar-lhe um instantâneo de esquema e executar a comparação se usando o seu próprio cópia do SQL Compare. Portão vermelho fornece uma ferramenta snapshot esquema livre chamada SQL Snapper que criará instantâneos que podem então ser enviado para você pelo seu cliente. Como isso não inclui quaisquer dados, pode ser algo que seu cliente está disposto a considerar.

A ferramenta SQL Snapper e código de exemplo Comparação SQL SDK pode ser baixado do nosso site labs.red-gate.com.

compatibilidade

A Oracle já está disponível na forma de uma compilação Early Access. Se você estiver interessado ou gostaria de experimentar a ferramenta visite a página do produto . Você pode usar isso de graça até a liberação completa da ferramenta.

David Atkinson, Product Manager, Software Red Gate.

Nós usamos Redgate SQL Compare para este e é-nos servido bem ao longo dos anos.

Nós também usamos Redgate dados SQL Compare para comparar o conteúdo das tabelas de pesquisa.

O pessoal da redgate ter uma grande ferramenta chamada SQL Compare .

Você pode criar um despejo de esquema como show do MySQL criar tabelas ?

Se você estiver em Windoze, tenho usado Ferramenta de consulta avançada por anos, e posso atestar que, para o dinheiro, ele faz mais do que qualquer outra coisa. Em particular, ele irá gerar um relatório diff entre bancos de dados. É ODBC / VB6, e pode funcionar contra dezenas de bancos de dados. Confira. (Não, eu não sou da Ferramenta de Consulta nem eu possuir qualquer parte dele, apenas um cliente feliz.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top