Criei um servidor Oracle vinculado no SQL Server 2012 usando o Oracle Provider para OLE DB e TNSNAMES.ORA (o banco de dados Oracle é clusterizado e, até onde eu sei, nenhum outro método de conexão funciona com servidores clusterizados). Isso funciona bem.
Agora o banco de dados Oracle foi movido para outro cluster, então editei TNSNAMES.ORA. O Oracle SQL Developer funciona bem.
Parece que o SQL Server não relê TNSNAMES.ORA, mas armazena os detalhes da conexão internamente, porque mesmo após a reinicialização do servidor, todas as consultas expiram.
Alguém sabe de uma solução diferente de excluir e recriar o servidor vinculado?
(Foi o que fiz para resolver meu problema, mas não deve ser tão difícil!)
Como você resolveu o problema é a maneira de resolvê-lo, porque não podemos modificar um Servidor Vinculado. E o SQL Server não lê o tnsnames.ora.
Embora a solução seja soltar e recriar, podemos usar o SQL Management Studio para editar o script Soltar e criar da seguinte maneira:
1. Clique com o botão direito do mouse no servidor vinculado.
2. Escolha
Script Linked Server as
.3. Escolha
New Query Editor Window
.4. Agora podemos modificar o script conforme nossos requisitos e executá-lo.
Isso simplesmente elimina e recria o servidor vinculado.
Obrigado
Sim, é necessário descartar e recriar o servidor vinculado. Isso leva apenas alguns momentos, então o impacto é muito pequeno.
Da mesma forma, não há razão para acreditar que o SQL Server tentaria ler o conteúdo interno de um banco de dados relacional diferente.