Identificacao de divergencia entre tabelas de bancos

30/03/2016

0

Ola Meus amigos, boa tarde!!!

Eu mais uma vez para perturbar a paz de todos. rsrsr

Estou com a seguinte situação, eu tenho 6 bases de dados que tem tabelas entre elas que tem que estar "sincronizadas", ou seja, os dados que tem em uma tem que ter exatamente o mesmo na outra.

A minha duvida é:

Como fazer para identificar as divergências entre essas tabelas?

Atualmente tenho 6 bases e elas podem crescer no futuro, com isso, gostaria de alguma sugestão de como fazer para ter esse controle de forma dinâmica.

Desde já agradeço.

Abraço.

Alex - Lekao
Alex Lekao

Alex Lekao

Responder

Posts

30/03/2016

Fabiano Carvalho

Fala lekão, 6 bases que voce se refere são 6 tabelas?

O que voce pretende como resultado final? Os dados das tabelas estarem identicos?
Responder

30/03/2016

Alex Lekao

e ae Fabiano... fmz?

sao bases mesmo e automaticamente que nessas bases elas tem uma tabela cada.

eu preciso identificar somente as discrepancias e onde estariam, mas somente se identificar a diferenca ja seria mais da metade do caminho andado. rsrsr
Responder

30/03/2016

Jothaz

Fala lekão, 6 bases que voce se refere são 6 tabelas?

O que voce pretende como resultado final? Os dados das tabelas estarem identicos?


Qual versão que você esta usando?

Existe um base mão da qual as outras derivam/

Ou a atualização é idenpendente?
Responder

30/03/2016

Paulo Nobre

Olá Alex,

Existem alguns softwares, a maioria pagos, que podem te ajudar nessa tarefa. Por exemplo:

- DBComparer: http://dbcomparer.com/

- SQL Compare: http://www.red-gate.com/products/sql-development/sql-compare/

- ApexSQL Diff: http://www.apexsql.com/sql_tools_diff.aspx

Para implementar isso de maneira mais automatizada, é possível que a replicação possa te ajudar. Conheça mais sobre esse recurso do SQL Server aqui e aqui
Responder

30/03/2016

Alex Lekao

2008R2.

Entao, a questao eh identificar produtos cadastrados em lojas que nao foram replicados para as demais.

os produtos devem ser cadatrados sempre pela matriz, mas por uma questao de arquitetura do software ele esta permitindo que o cadastro seja feito em filiais.

Eu quero conseguir fazer um cruzamento para identificar os produtos que foram cadastrados nessas tabelas e que nao estejam replicados nas demais, seria um cruzamento de informacoes.

Nao sei se melhorei a questao ou se compliquei ainda mais. rsrsr
Responder

30/03/2016

Alex Lekao

Oi Paulo,

Obrigado pela ajuda.

Nao seria uma questao de replicacao, estou tentando contornar uma possivel "cabecada" de um operador ao fazer o cadastro de um produto e conseguir detectar qdo isso acontece.

é mais para confeccao de um relatorio de auditoria mesmo, ou somente informativo. rsrsr

obrigado mais uma vez.
Responder

30/03/2016

Jothaz

Eu iria sugerir as soluções pagas como o Paulo Daniel Nobre sugeriu.

Perincipalmente - ApexSQL Diff: http://www.apexsql.com/sql_tools_diff.aspx

Qual seria a frequência desta sincronização?

Pois talvez com um DTS e Integration Service você conseguiria verificar as diligenciarias.

Ou até mesmo um um aplicação rodando como serviço do Windows ou como Task no Schedule.

Mas nada tão robusto e seguro como as ferramentas pagas.
Responder

30/03/2016

Jothaz

Eu iria sugerir as soluções pagas como o Paulo Daniel Nobre sugeriu.

Perincipalmente - ApexSQL Diff: http://www.apexsql.com/sql_tools_diff.aspx

Qual seria a frequência desta sincronização?

Pois talvez com um DTS e Integration Service você conseguiria verificar as diligenciarias.

Ou até mesmo um um aplicação rodando como serviço do Windows ou como Task no Schedule.

Mas nada tão robusto e seguro como as ferramentas pagas.
Responder

30/03/2016

Alex Lekao

Entendi,

Entao essa frequencia iria depender basicamente do gestor de produtos querer saber se ha alguma discrepancia ou nao.

ate pensei em deixar com um job no banco para qdo achar alguma discrepancia enviar um relatorio por e-mail para o gestor, mas achei meio "desnecessario".

isso seria somente para uma consulta de tempos em tempos mesmo, qdo o gestor julgar necessario fazer essa checagem.
Responder

30/03/2016

Isaac Jose

boa tarde a todos.

Seria algo como a LOJA 1 cadastrou 3 produtos de nome X , 5 Y e assim por diante?
se for da pra vc fazer no report com parâmetros e ai nem precisa rodar um DTS.
Vc monta o relatório com o parâmetro do ID da loja e os produtos que quer verificar assim quando o gestor quiser saber um relatório de uma determinada loja ele vai la e faz a pesquisa desejada.

obs. é bom utilizar esse recurso se for realmente feito de tempos em tempos e for frequente e melhor criar uma tabela para não locar as bases


att.
Isaac
Responder

30/03/2016

Jothaz

Já que é somente um relatório poderia ser um Procedure ou Job mesmo.

Ou um aplicação tipo Windows Form para ser executada quanto o gestor quiser.
Responder

30/03/2016

Alex Lekao

entendi.

infelizmente ainda nao montei o esquema do reporting services. rsrsr

seria um cruzamento de informacoes, me informar que na loja 2 tem dois itens e seus principais dados, que nao tem na um, e na loja 3 da mesma forma e assim por diante.

nao estou conseguindo pensar em nada para montar o script, ja fiz um, acredito que bem simples, onde coloquei uma tabela de produto da base da matriz e fim um right join com a de uma filial e no where coloquei que o dado referente a select estaria null, deu resultado, mas nao sei como fazer que isse seja uma especie de cruzamento de informacoes.

tive que montar tabela por tabela, no caso, sao 5 scripts.

=/
Responder

30/03/2016

Marcos P

Lekão,

Você pode fazer em scripts separados ou criar, conforme o Isaac sugeriu uma tabela temporária de auditoria, que, alimentada a partir de uma stored procedure, gere um "log" das divergências... conforme os vários "critérios" que você precisa identificar.

Repare que a ideia é simples : centralizar na procedure todas as queries de "auditoria" que você precisa e registrar todas as ocorrências em um tabela que centralizará seu controle das diferenças.

Essa procedure, sendo chamada regularmente via Sql Agent, resolve seu problema !

Se precisar de ajuda nessa linha, coloca aqui teu skype / gtalk que te chamo quando puder.

Abraços.
Responder

30/03/2016

Alex Lekao

Ola Marcos,

Obrigado, vou verificar as possibilidades que todos me sugeriram e decidir o que fazer.

qualquer coisa posto aqui novamente se precisar de mais ajuda.

Com relacao a fazer esse cruzando de informacoes, nao tem algo "pronto" que consigamos fazer no sql, o esquema eh codigo para varrer tabela e base a tabela e base mesmo, certo?

Desde ja abradeco a todos pela ajuda.
Responder

31/03/2016

Marcos P

Existem as ferramentas já citadas anteriormente. Nativo do Sql Server, não conheço nenhuma ferramenta nesse sentido.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar