Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael Batista

Acessando 2 databases em servidores distintos

Recommended Posts

Bom dia, galera preciso de uma ajuda urgente, vou explicar o "cenário" e caso tenham alguma sugestão ou colocação por favor me respondam.

 

Estou criando um windows service que será responsavel (falando a grosso modo) por buscar informações de um servidor X e gerar um id e alimentar uma table em um servidor Y.

 

O banco eh SQL 2005, e estão em servidores distintos e em rede diferente.

 

Minha dúvida é, para alimentar o servidor Y eu vejo duas possibilidades: criar algumas procs que ficariam na base X, recuperariam informações da base X e acessariam a base Y para assim alimenta-la, ou então criar uma instancia pra cada banco no meu windows service, que ficaria responsavel por recuperar os dados de X e depois realizar o insert/update na base Y.

 

Qual a solução mais viavel, visto que depende da forma como sera criado o link entre as bases, alias, minha duvida principal é: como deve ser criado esse "link" ? um linked server resolveria (ouvi falar pesquisei algo por cima mas nao manjo de linked server) ? ou então, como deve ser feito a liberação de acesso entre os servidores?

 

Preciso terminar isso pra ontem, tenho as procs q acessariam o segundo banco ja prontas, mas em questao do gerenciamento do banco para q isso se faça possivel nao sei como fazer, e mesmo q nao funcione essa "consulta" direta na outra base, como deveria ser feito entao?

 

Desde ja agradeço qm puder me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um modo seguro e ao meu "fácil" de se fazer é justamente fazer um linked server entre os servidores e fazer uma trigger de atualização do server X para o server Y. Mas vamos por partes:

 

Um linked server é um modo que os servers se "enxerguem" entre si, para isso você vai precisar de um usuario com acesso de sysadm (isso em cada um dos server)

 

A trigger que você vai montar eh uma DDL de insert. Tem uns artigos no próprio imasters que podem lhe ajudar nisso.

 

Procedures entre servidores eu recomendo qdo se tem uma carga de dados baixa, e tb qdo se tem um link alto.

 

Uma coisa, os server tem ip para internet?! se nao tiver, o trampo vai ser maior, pelo fato de estarem em redes diferentes.

A base Y, somente vai receber os dados, ou vai ser alterados estes dados?!

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um modo seguro e ao meu "fácil" de se fazer é justamente fazer um linked server entre os servidores e fazer uma trigger de atualização do server X para o server Y. Mas vamos por partes:

 

Um linked server é um modo que os servers se "enxerguem" entre si, para isso você vai precisar de um usuario com acesso de sysadm (isso em cada um dos server)

 

A trigger que você vai montar eh uma DDL de insert. Tem uns artigos no próprio imasters que podem lhe ajudar nisso.

 

Procedures entre servidores eu recomendo qdo se tem uma carga de dados baixa, e tb qdo se tem um link alto.

 

Uma coisa, os server tem ip para internet?! se nao tiver, o trampo vai ser maior, pelo fato de estarem em redes diferentes.

A base Y, somente vai receber os dados, ou vai ser alterados estes dados?!

 

Abçs

Entao cara, me disseram que um linked server eh mto instavel, eu nao conheco para julgar as vantagens ou desvantagens de se utilizar o linked server. sugeriram usar DTS, que eu ate conheco mas mesmo assim o banco x devera enxergar o banco y para isso certo!?

 

Quanto a usar trigger nao entendi porque... Eu criei proc pq nela eu recupero tudo akilo q necessito e em seguida executo o insert ou update ou o delete... no caso de triggers seria executado sempre q ocorrece alguma alteração certo!? para mim nao eh viavel visto que a aplicação so sera executada de madrugada diariamente ou em intervalos na aplicação definido.

 

Nao sei informar se tem ip para internet, pois ainda nao me liberaram acesso para o banco Y , estou trabalhando meio q nas escuras enquanto isso, mas gostaria de saber minhas possibilidades e consequentes faclidades/dificuldades diantes a forma q for adotada.

 

E sim, pode ser alterado, inserido ou deletado, conforme base X , seria como uma copia de dados de X para Y, porem no banco X esta em diversas tabelas e no Y sera apenas uma tabela, com uma FK q eu irei gerar a partir de uma segunda tabela do banco Y onde crio um registro para cada manipulação de dados feita no banco Y, sendo esse registro referente tanto a update, insert ou delete.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Rafael,

 

No SQL Server 2005 não existe mais o DTS, agora é utilizado o SSIS(SQL Server Integration Services).

Tanto por SSIS qto por linked server você vai ter algum tipo de verificacao qto a performance em rede e processamento do server. isso vai depender muito de qtas tabelas, registros, etc tem em seu banco de dados e do link que você vai ter entre estes dois servers.

Se for uma aplicacao critica e/ou seu db for muito grande nao vejo outra alternativa.

Vamos ver se alguem mais do forum tem ideias ^^

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.