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)
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.
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é.
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.
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 .
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.