Comment se connecter à SQL Server après miroir basculement?
-
18-09-2019 - |
Question
Je mis en place une base de données en miroir, puis utilisé ce connectionstring
pour s'y connecter:
Data Source={0};Failover Partner={1};Initial Catalog=AdventureWorks;
Integrated Security=True;
Après avoir ajouté des données dans la base de données, je arrêter le serveur principal, de sorte que le serveur miroir devient le serveur principal. J'ouvre à nouveau la connexion, une obtenir cette erreur:
System.Data.SqlClient.SqlException: A transport-level error has
occurred when sending the request to the server. (provider: Shared Memory
Provider, error: 0 - No process is on the other end of the pipe.)
Je pensais que avec Failover Partner spécifié dans la chaîne de connexion, ADO.NET ferait le travail pour moi. Alors, que dois-je faire maintenant?
La solution
Heureusement, je fixe ce problème. Tout ce que je dois faire APPELLE méthode ClearPool:
SqlConnection.ClearPool(conn);
Cette méthode effacera le pool de connexion. Ensuite, le problème a disparu. Je suis tellement content.
Je vous remercie, vous tous, pour votre soutien. : D
Autres conseils
Je ne suis pas un expert au sujet des choses .net, mais vous avez besoin du client natif SQL (SQLNCLI) pour gérer le basculement. "Ado.net" peut être SQLOLEDB
Jusqu'à Windows Server 2003 au moins il est pas installé par défaut. Il est autonome ou une partie des outils clients SQL, donc je suppose que vous utilisez SQLOLEDB
Après avoir arrêté le principal, avez-vous vérifié que le basculement est devenu en fait le principal? Si elle n'a pas eu le basculement automatique sur le serveur SQL, vous le miroir est toujours un miroir.
Nous avons constaté que cela se passerait-il si vous avez assez na pas grand ensemble de délai d'attente.