Usuário com melhor resposta
Problemas ao criar Linked Server - "The semaphore timeout period has expired"

Pergunta
-
Prezados, boa noite.
Estou com um problema na criação de um Linked Server, no SQL Server 2008. Tento criar um servidor vinculado a um outro servidor dentro da nossa rede, da empresa onde trabalho. Ao criar, o SQL Server local, onde crio o Linked Server, me envia o seguinte erro:
"TCP Provider: The semaphore timeout period has expired"
Segue o print da mensagem de erro completa e das telas de configuração:
Caso precisem de mais alguma informação, estou a disposição. Um grande abraço!
Respostas
-
Galera, consegui resolver, com ajuda do setor de Infra. O problema estava na configuração de TCP/IP do servidor criado.
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 7 de abril de 2015 18:25
Todas as Respostas
-
Ivan,
Antes de configurar o linkedserver é necessário verificar como está configurada sua rede. Isto porque este erro ocorre normalmente por problemas de comunicação entre um ou mais servidores, tornando as conexões de sua rede intermitentes.
O KB abaixo pode auxiliar você à detectar este problema de configuração:
http://support.microsoft.com/kb/325487
Assim que o ambiente estiver estável, você poderá configurar seu linkedserver, preferencialmente utilizando um "login" SQL Authentication.
Para criar um linkedserver, utilize o script T-SQL abaixo:
EXEC sp_addlinkedserver @server=N'TESTE', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'SeuServidor\SuaInstancia'; GO sp_addlinkedsrvlogin @rmtsrvname ='TESTE', @useself = 'FALSE', @locallogin = null, @rmtuser ='SeuUsuario', @rmtpassword = 'SuaSenha' GO
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil" -
-
Eu executei assim:
EXEC sp_addlinkedserver
@server=N'TESTE',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'ELSRIOSQLP001\NAVISION_HMLG';
GO
sp_addlinkedsrvlogin @rmtsrvname ='TESTE', @useself = 'FALSE', @locallogin = null, @rmtuser ='fun-scielsriosql001', @rmtpassword = 'xxxxx'
GOE a resposta foi:
- Editado ivan_castro terça-feira, 24 de fevereiro de 2015 16:46 correção do script
-
Eu executei assim:
EXEC sp_addlinkedserver
@server=N'TESTE',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'ELSRIOSQLP001\NAVISION_HMLG';
GO
sp_addlinkedsrvlogin @rmtsrvname ='ELSRIOSQLP001', @useself = 'FALSE', @locallogin = null, @rmtuser ='fun-scielsriosql001', @rmtpassword = 'Oxford10'
GOE a resposta foi:
Msg 15015, Level 16, State 1, Procedure sp_addlinkedsrvlogin, Line 49
The server 'ELSRIOSQLP001' does not exist. Use sp_helpserver to show available servers.Ivan,
Ocorreu esta mensagem de erro porque você mudou o vínculo para o linkedserver. Se realmente não há como utilizar o linkedserver com SQL Authentication, tenha certeza que este usuário tem acesso à ambos os servidores.
Segue abaixo a alteração apenas para definição do acesso para seu ambiente:
sp_addlinkedsrvlogin @rmtsrvname ='TESTE' , @useself = 'true' , @locallogin = 'SCIENCE\fun-scielsriosql001' GO
O seu linkedserver "TESTE" já foi criado usando "sp_addlinkedserver", basta executar este script para definir quem é o usuário deste acesso.
Para maiores informações veja:
https://technet.microsoft.com/pt-br/library/ms189811%28v=sql.105%29.aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil" -
Então, eu havia deletado o linked server anterior. Fiz novamente com suas alterações:
EXEC sp_addlinkedserver
@server=N'TESTE',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'ELSRIOSQLP001\NAVISION_HMLG';
GO
sp_addlinkedsrvlogin @rmtsrvname ='TESTE', @useself = 'TRUE', @locallogin = null, @rmtuser ='SCIENCE\fun-scielsriosql001', @rmtpassword = 'xxxxx'
GOE a resposta foi a mesma após efetuar um Test Connection:
Desde já, lhe agradeço a atenção que vem me dando.
Tem algum teste que eu possa fazer para verificar se é permissão de acesso?
-
Então, eu havia deletado o linked server anterior. Fiz novamente com suas alterações:
EXEC sp_addlinkedserver
@server=N'TESTE',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'ELSRIOSQLP001\NAVISION_HMLG';
GO
sp_addlinkedsrvlogin @rmtsrvname ='TESTE', @useself = 'TRUE', @locallogin = null, @rmtuser ='SCIENCE\fun-scielsriosql001', @rmtpassword = 'xxxxx'
GOE a resposta foi a mesma após efetuar um Test Connection:
Desde já, lhe agradeço a atenção que vem me dando.
Tem algum teste que eu possa fazer para verificar se é permissão de acesso?
Ivan,
O erro de semáforo você só vai corrigir ajustando sua rede como indicado no KB:
http://support.microsoft.com/kb/325487
Com relação ao linkedserver para Windows Authentication, você deve executar exatamente como foi indicado, segue novamente o script completo:
EXEC sp_addlinkedserver @server=N'TESTE', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'ELSRIOSQLP001\PIX_PRODUCAO'; GO sp_addlinkedsrvlogin @rmtsrvname ='TESTE' , @useself = 'true' , @locallogin = 'SCIENCE\fun-scielsriosql001' GO
Reforçando, o usuário deve possuir acesso em ambos os servidores pelo Domínio.Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Editado Durval RamosModerator terça-feira, 24 de fevereiro de 2015 17:23 Alterado instância do servidor
-
Então, executei o script acima e também não consegui.
Referente ao KB, o primeiro passo foi o ping, que retornou resposta:
Disparando ELSRIOSQLP001.science.regn.net [10.47.59.25] com 32 bytes de dados:
Resposta de 10.47.59.25: bytes=32 tempo=1ms TTL=126
Resposta de 10.47.59.25: bytes=32 tempo=1ms TTL=126
Resposta de 10.47.59.25: bytes=32 tempo=1ms TTL=126
Resposta de 10.47.59.25: bytes=32 tempo=1ms TTL=126
Resposta de 10.47.59.25: bytes=32 tempo=1ms TTL=126
Estatísticas do Ping para 10.47.59.25:
Pacotes: Enviados = 5, Recebidos = 5, Perdidos = 0 (0% de
perda),
Aproximar um número redondo de vezes em milissegundos:
Mínimo = 1ms, Máximo = 1ms, Média = 1msOs outros passos eu apresentei ao responsável pela infra estrutura da empresa e me informou não haver problema.
UPDATE
O login do Windows da minha estação e o do servidor são diferentes.
- Editado ivan_castro terça-feira, 24 de fevereiro de 2015 20:12
-
Ivan,
Vale ressaltar que o Ping não é um commando que garante performance, mas sim que existe uma possível troca de dados entre a origem e o destino.
Você disse que o login da sua máquina é diferente do servidor, perfeito, tem que ser assim mesmo, mas neste caso para usar a sua conta de usuário do Windows no SQL Server, será necessário adicionar o seu login com uma conta de login no SQL Server.
Sobre esta trabalhando em uma rede com domínio?
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
Ivan,
Estou perguntando se a sua estrutura de rede possui um Servidor fazendo uso do Active Directory? Saberia me dizer como esta a configuração de DNS?
Você já verificou a configuração de protocolos de rede que estão habilitados neste servidor SQL Server?
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Falei com um dos funcionários de Infra, e ele me informou que sobre o Active Directory, eles usam alguns recursos. DNS e protocolos de rede não sabe informar. Provavelmente somente o analista Senior de infra ou o pessoal da Holanda, que é quem configura a rede da empresa.
-
Ivan,
Seria muito importante entender a configuração da rede e seus respectivos recursos para que possamos tentar alinhar as necessidades do SQL Server!!!
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Pessoal, desculpe a falta de retorno, pois suspenderam este projeto, e agora estou de volta nele.
Este erro continua dando, porém somente ao acessar a instancia de homologação.
Tenho 3 situações:
1) Do meu banco local(1) -> banco remoto (instancia de homologação(2)): Dá o erro descrito.
2) Do meu banco local(1) -> banco remoto (instancia de produção(3)): Linked Server criado com sucesso(!).
3) Conectei o banco de produção(3) localmente, na minha estação com sucesso, e daí sim consegui criar o linked server com a instancia de homologação(2).
Já verifiquei o usuário, mas parecem estar exatamente iguais os do banco (2) e (3).
-
Ivan,
Você já tentou configurar na guia de segurança do Linked Server o uso de Impersonate?
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Ivan,
Você já tentou configurar na guia de segurança do Linked Server o uso de Impersonate?
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Ivan,
Veja esta imagem ajuda:
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
Ivan_Castro,
O usuário que você esta especificando deve existir no servidor Oracle!!!
Faça um teste, especifique o usuário do Oracle na opção Be Made using this security context, e remova o login que esta informado no impersonate.
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Editado Junior Galvão - MVPMVP, Moderator quarta-feira, 1 de abril de 2015 14:40
-
-
Ivan,
Então meu caro colega, o que importa é ter o usuário em ambos os servidores.
Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Galera, consegui resolver, com ajuda do setor de Infra. O problema estava na configuração de TCP/IP do servidor criado.
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 7 de abril de 2015 18:25