Les bases de données mises en miroir sont déconnectées après avoir redémarré la base de données miroir dans SQL Server

Cet article vous aide à résoudre le problème où les bases de données mises en miroir sont laissées dans un état déconnecté ou en état de récupération .

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 2490051

Symptôme

Prenons l’exemple du scénario suivant :

  • Vous disposez d’un ordinateur qui exécute une instance secondaire de Microsoft SQL Server dans une base de données à deux serveurs miroir.

  • L’utilisation du processeur atteint 100 % sur l’ordinateur, et vous ne pouvez pas arrêter le service SQL Server à l’aide des outils de gestion SQL Server.

  • Vous terminez le processus de l’SQL Server instance secondaire à l’aide du Gestionnaire des tâches.

  • Vous redémarrez la instance secondaire de SQL Server.

Dans ce scénario, toutes les bases de données mises en miroir sont à l’état Déconnecté ou En récupération . En outre, un message d’erreur semblable à ce qui suit est enregistré dans le journal des erreurs SQL Server pour chaque base de données :

Contournement de la récupération pour la base de données « Nom de la base de données », car elle est marquée comme une base de données de mise en miroir de bases de données inaccessible. Il existe un problème avec la session de mise en miroir. La session n’a pas de quorum ou les liens de communication sont rompus en raison de problèmes liés aux liens, à la configuration du point de terminaison ou aux autorisations (pour le compte de serveur ou le certificat de sécurité). Pour accéder à la base de données, déterminez ce qui a changé dans la configuration de la session et annulez la modification.

Cause

Ce problème se produit en raison de problèmes dans les points de terminaison de mise en miroir de bases de données SQL Server.

Résolution

Pour résoudre ce problème, utilisez les méthodes suivantes. Si la première méthode ne résout pas le problème, utilisez la deuxième méthode.

Méthode 1

Recyclez le point de terminaison sur la base de données miroir. Pour cela, procédez comme suit :

  1. Sur la base de données principale, exécutez le script SQL suivant pour arrêter le point de terminaison :

    ALTER ENDPOINT <Endpoint Name> STATE=STOPPED
    
  2. Exécutez le script SQL suivant pour redémarrer le point de terminaison :

    ALTER ENDPOINT <Endpoint Name> STATE=STARTED
    

    Remarque

    Si la communication entre les points de terminaison ne redémarre pas après l’exécution des scripts, exécutez les scripts sur la base de données miroir. Toutefois, la base de données peut passer à l’état Suspendu après cette opération. Si ce problème se produit, exécutez le script SQL suivant :

    ALTER DATABASE <Database Name> SET PARTNER RESUME
    

Méthode 2

Supprimez et recréez les points de terminaison de mise en miroir de bases de données sur les deux serveurs.