web-dev-qa-db-fra.com

SQL Server: le délai de connexion fréquent a expiré dans le serveur lié

J'utilise SQL Server 2012. J'ai planifié un travail à exécuter toutes les 1 heure, avec 1 étape appelant 1 procédure stockée simple. La procédure stockée migre environ 1 Ko de données du serveur de production vers notre serveur local. Le serveur lié a été établi avec succès. La requête utilisée dans la procédure stockée ressemble à ci-dessous.

SELECT ID,Col1,Col2,Col3,Col4,Col5 into #temp from [111.111.111.111].ProdServer.dbo.SourceTable

Insert into Localtable(ID,Col1,Col2,Col3,Col4,Col5)
SELECT ID,Col1,Col2,Col3,Col4,Col5
FROM #temp where ID NOT IN (select ID from Localtable)

enter image description here

L'exécution du travail prend parfois 25 à 30 secondes, ce qui sera exécuté avec succès. Parfois, cela prend 48 à 50 secondes, ce qui entraîne un échec. Veuillez vous référer au message d'échec ci-dessous et aux autres détails dans la capture d'écran ci-dessus.

Message d'échec:

Exécuté en tant qu'utilisateur: NT AUTHORITY\NETWORK SERVICE. Fournisseur de canaux nommés: impossible d'ouvrir une connexion à SQL Server [53]. [SQLSTATE 42000] (Erreur 53) OLE Le fournisseur de base de données "SQLNCLI10" pour le serveur lié "111.111.111.111" a renvoyé le message "Délai d'expiration de connexion expiré". [SQLSTATE 01000] (Erreur 7412) OLE Le fournisseur de base de données "SQLNCLI10" pour le serveur lié "111.111.111.111" a renvoyé un message "Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez si le nom de l'instance est correct et si SQL Server est configuré pour autoriser les connexions à distance. Pour plus d'informations, consultez la documentation en ligne de SQL Server. ". [SQLSTATE 01000] (Erreur 7412). L'étape a échoué.

Plus de détails

  • La table n'est verrouillée par personne et aucune requête n'y est exécutée.
  • Dans les propriétés du serveur lié, le délai d'expiration de la requête et le délai d'expiration de la connexion ont été définis sur 0.
  • Dans les propriétés du serveur, le délai d'expiration de la requête distante est également défini sur 600 secondes.

Comme dernière option, j'ai essayé de changer les paramètres de délai de connexion de sa valeur par défaut 15 à 6000 ou plus. Je n'ai pas pu y arriver. Veuillez suggérer une solution pour exécuter mes tâches planifiées avec succès, même si cela prend 48 minutes ou un peu plus.

Right Click on server> Click on properties> Click view connection properties dans le volet gauche sous connexion - pour voir Connection Timeout Property

1 nouvelle observation: Le travail échoue s'il prend 48 seconds ou plus à exécuter.

4
Shiva

Je suis ici répondant à ma propre question . Après tant d'observations et d'expériences de recherche sur Internet, j'ai trouvé une solution à ce problème. Vous devez exécuter cette requête simple

USE Yourdatabase;
GO
EXEC sp_configure 'remote query timeout', 0 ;
GO
RECONFIGURE ;
GO

Le paramètre prend effet immédiatement sans redémarrer le serveur.

Veuillez vous reporter à Configurer l'option de configuration du serveur de délai de requête à distance et sp_configure .

6
Shiva

Cliquez avec le bouton droit sur le serveur, ouvrez les Propriétés du serveur, accédez à Connexions et assurez-vous que l'option Autoriser les connexions à distance à ce serveur est cochée.

Vérifiez également les paramètres du pare-feu.

0
Parvinder Nijjar