Partager via


Les bases de données mises en miroir sont déconnectées après avoir redémarré le miroir de bases de données 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 récupération .

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

Symptôme

Examinez le cas suivant :

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

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

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

  • Vous redémarrez l’instance secondaire de SQL Server.

Dans ce scénario, toutes les bases de données mises en miroir sont dans un é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 y a un problème avec la session de mise en miroir. Soit la session n'a pas de quorum, soit les liaisons de communication sont rompues à cause de problèmes au niveau des liaisons, de la configuration des points de terminaison ou des autorisations (pour le compte de serveur ou le certificat de sécurité). Pour accéder à la base de données, découvrez ce qui a changé dans la configuration de la session et annulez cette 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 le miroir de bases de données. Pour ce faire, 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
    

    Note

    Si la communication entre les points de terminaison ne redémarre pas après l’exécution des scripts, exécutez les scripts sur le miroir de bases de données. Toutefois, la base de données peut entrer un état suspendu une fois cette opération effectuée. 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.