CORRECTIF : Message d’erreur lorsque vous démarrez la base de données mise en miroir dans SQL Server 2005 sur une base de données qui est restauré ou mis à niveau à partir de SQL Server 2000 : « L’ID de Service Broker pour la copie distante de la base de données « < nom_base_données > » ne correspond pas à l’ID sur le serveur principal »

Symptômes

Prenez en compte un des scénarios suivants :
  • Vous restaurez une sauvegarde de base de données à partir de Microsoft SQL Server 2000 sur une instance de Microsoft SQL Server 2005 à l’aide de l’option WITH RECOVERY . Vous permet également de restaurer cette sauvegarde de la base de données sur une autre instance de SQL Server 2005 à l’aide de l’option WITH NORECOVERY .
  • Vous avez deux instances de SQL Server 2000 qui ont une base de données est le même sur ces instances. Une instance possède de la base de données dans l’état de chargement. L’autre instance a la base de données dans l’état normal. Ensuite, vous mettez à niveau ces instances vers SQL Server 2005.
Vous configurez la mise en miroir de base de données dans cette base de données dans SQL Server 2005. Toutefois, lorsque vous démarrez la mise en miroir de base de données, le message d’erreur suivant s’affiche :
Le code Service Broker la copie distante de la base de données «< nom_base_données >» ne correspond pas à l’ID sur le serveur principal. (Microsoft SQL Server, erreur : 1436)
Remarque Ce problème se produit également dans Microsoft SQL Server 2008.

En général, vous rencontrez ce problème lorsque vous mettez à niveau une configuration d’envoi de journaux Microsoft SQL Server 2000. Considérez le scénario suivant :
  • Vous avez une configuration d’envoi de journaux SQL Server 2000.
  • Vous mettez à niveau les serveurs impliqués dans la configuration de SQL Server 2005 d’envoi de journaux.
  • Après la mise à niveau, vous configurez la mise en miroir de base de données à l’aide de la base de données précédemment utilisé dans la configuration d’envoi de journaux.
Lorsque vous démarrez la mise en miroir de base de données, vous recevez ce message d’erreur.

Cause

Bases de données dans SQL Server 2000 n’ont pas un code de Service Broker. Si vous restaurez les bases de données sur des instances de SQL Server 2005 à l’aide de l’option WITH NORECOVERY , ces bases de données ne seront pas mis à niveau. Par conséquent, l’ID de Broker Service de ces bases de données est NULL après la restauration. En outre, si vous mettez à niveau une instance de SQL Server 2000, les bases de données existantes qui se trouvent dans l’état de chargement ne seront pas mis à niveau. Par conséquent, l’ID de Broker Service de ces bases de données est NULL après la mise à niveau. Lorsque vous démarrez la mise en miroir de la base de données, l’ID de Broker Service du serveur principal est comparé à l’ID de Service du serveur miroir. L’ID du Service Broker ne correspondent pas, la comparaison échoue.

Dans le scénario de mise à niveau d’une configuration d’envoi de journaux SQL Server 2000, la base de données secondaire est dans l’état de chargement. Une fois que vous mettez à niveau le serveur contenant la base de données secondaire, la base de données ne dispose pas d’un ID du Service Broker. Une fois que vous mettez à niveau le serveur contenant la base de données principale, la base de données a un ID du Service Broker. Lorsque vous démarrez la mise en miroir de la base de données, l’ID de Broker Service du serveur principal est envoyé au serveur miroir pour la comparaison. L’ID de Broker Service du serveur miroir est NULL, la comparaison échoue.

Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack pour SQL Server 2005. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
913089 comment obtenir le dernier service pack pour SQL Server 2005

Important Après avoir installé le Service Pack 3 de SQL Server 2005, activez l’indicateur de trace 8446 sur le serveur miroir avant de commencer la mise en miroir de base de données. Après avoir démarré la mise en miroir de base de données, vous pouvez supprimer en toute sécurité cet indicateur de suivi. Pour plus d’informations sur l’activation d’un indicateur de trace, visitez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante :

Solution de contournement

Pour contourner ce problème, procédez comme suit :
  1. Effectuer une sauvegarde complète de base de données et la sauvegarde du journal sur le serveur principal.
  2. Restaurer la sauvegarde de la base de données et la sauvegarde du journal sur le serveur miroir à l’aide de l’option WITH NORECOVERY .
  3. Configurer la mise en miroir de base de données sur la base de données.
  4. Démarrer la mise en miroir de base de données.

État

Microsoft a confirmé qu’il s’agit d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ». Ce problème a été corrigé dans SQL Server 2005 Service Pack 3.

Plus d'informations

Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft

Références

Pour plus d’informations sur la mise à niveau d’une configuration d’envoi de journaux SQL Server 2000, visitez le site Web MSDN suivant :
Propriétés

ID d'article : 959008 - Dernière mise à jour : 13 janv. 2017 - Révision : 1

Commentaires