BOGUE : sp_change_secondary_role Échec avec erreur 3101 si il Y a sauvegardes du journal des transactions ouvertes

Traductions disponibles Traductions disponibles
Numéro d'article: 294397 - Voir les produits auxquels s'applique cet article
BOGUE #: 352508 (SHILOH)
Agrandir tout | Réduire tout

Sommaire

Symptômes

L'exécution de la sp_change_secondary_role procédure stockée sur le serveur en attente d'un journal expédition paire échoue avec un message d'erreur 3101 si les deux conditions suivantes sont remplies :

  • La valeur 1 est transmise pour l'argument @ terminer . Notez que cela est également la valeur par défaut pour ce paramètre.
  • Il existe au moins un journal de transaction en circulation pour être appliquée sur le serveur de secours.
Si vous exécutez le travail RESTORE LOG sur le serveur de secours à l'aide xp_sqlmaint procédure étendue à ce stade, la sortie est :
Source de base de données - test
Base de données de destination - test
[Microsoft SQL-DMO (ODBC SQLState : 42000)]
Erreur 3101 : accès exclusif [Microsoft] [ODBC SQL pilote Server] [SQL Server] Impossible d'obtenir car la base de données est en cours d'utilisation.
[Microsoft][Pilote ODBC SQL Server](SQL Server)RESTORE LOG se termine anormalement.
Chargement des fichiers 0
NULL
Charge terminé de plan SERVER1\INST1.test_logshipping

Serveur: Msg 22029, Niveau 16, État 1, ligne 0
SQLMaint.exe a échoué.

Cause

Si l'envoi de journaux est configuré entre deux serveurs, et vous devez avancer le secondaire ou mise en veille serveur en ligne, vous pouvez exécuter la procédure sp_change_secondary_role stockés sur le serveur en attente pour mettre le secondaire ou mise en veille serveur en ligne. Si vous exécutez la procédure sp_change_secondary_role stockée avec les paramètres par défaut, la procédure stockée effectue ces tâches :

  • Définit la base de données en attente en mode mono-utilisateur.
  • Copie des fichiers supplémentaires peuvent doivent être copiés.
  • Désactive le travail de copie sur le serveur en attente.
  • Restaure les journaux des transactions en attente.
  • Affiche la base de données en ligne sur le serveur secondaire.
  • Effectue certaines housekeeping sur le journal d'expédition plan tables dans la base de données msdb parce que maintenant ces informations doivent être mis à jour.
Si la procédure sp_change_secondary_role stockées est transmise @ mettre fin à la valeur = 1 (qui est également la valeur entrée par défaut pour le paramètre @ Arrêter ), article 1 dans la séquence précédente utilise un
ALTER DATABASE dbname SET SINGLE_USER
commande pour modifier l'état de la base de données et assurez-vous qu'aucuns les utilisateurs ne sont connectés lorsque l'opération RESTORE est tentée. Toutefois, l'instruction ALTER DATABASE provoque sa prendre un verrou de base de données partagée qui restent en vigueur jusqu'à ce que la connexion s'arrête. Articles 2 et 4 sont effectuent via xp_sqlmaint étendue procédure, qui ouvre une connexion séparée au serveur, afin que ces étapes utilisent un id de processus serveur ( spid ) qui diffère le spid de la connexion sp_change_secondary_role d'origine. Par conséquent, le verrou de base de données partagée est maintenu par les blocs spid procédure stockée la tâche RESTORE LOG que xp_sqlmaint tente effectuer. Par conséquent, la procédure sp_change_secondary_role échoue avec un message d'erreur 3101.

Contournement

Pour éviter cette erreur, appliquez l'une des solutions suivantes :
  • Garantit qu'il ne journaux des transactions en attente avant d'exécuter la procédure sp_change_secondary_role stockées. Exécution manuellement le travail RESTORE sur le serveur secondaire avant d'exécuter sp_change_secondary_role ne garantit qu'il aucun journaux des transactions en attente.

    -ou-
  • Vous pouvez transmettre la valeur de zéro à la @ terminer paramètre (@ fin = 0) lorsque vous exécutez la procédure sp_change_secondary_role stockées. Toutefois, l'utilisateur doit Vérifiez qu'il n'y a aucun utilisateur connecté à la base de données avant d'exécuter la procédure stockée pour garantir que le journal RESTORE fonctionne correctement.

Statut

Microsoft a confirmé l'existence de ce problème dans SQL Server 2000.

Plus d'informations

sp_change_secondary_role est une procédure stockée système qui vous exécutez sur le serveur de mise en veille lorsque vous souhaitez mettre le serveur de secours en ligne.

RÉFÉRENCES

Documentation en ligne de SQL Server ; rubrique: « Comment faire pour paramétrer et exécuter un journal d'expédition de modification de rôle (Transact-SQL) »

Propriétés

Numéro d'article: 294397 - Dernière mise à jour: vendredi 25 juin 2004 - Version: 3.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Édition Entreprise
  • Microsoft SQL Server 2000 Édition Développeur
Mots-clés : 
kbmt kbbug kbpending KB294397 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 294397
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com