Erreur d'Assertion de SQL Server lorsque vous essayez d'exécuter une instruction Bulk Insert ou BCP: «<loglock.cpp>, ligne = 807 Failed Assertion = ' résultat == LCK_OK' "</loglock.cpp>

Traductions disponibles Traductions disponibles
Numéro d'article: 2700641 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Envisagez le scénario suivant :
  • Le serveur a et le serveur b exécutent Microsoft SQL Server 2008 ou SQL Server 2008 R2.
  • Permet de paramétrer la mise en miroir de base de données entre le serveur a et le serveur B.
  • Vous exécutez une instruction BULK INSERT ou BCP sur la base de données principale.

    Remarque : Par défaut, l'option CHECK_CONSTRAINTS est définie sur off lorsque vous exécutez une instruction de BCP ou BULK INSERT.
  • La mise en miroir de base de données est interrompue et la base de données mise en miroir de la session passe en état suspendu.
Dans ce scénario, une assertion se produit sur le serveur miroir. Par conséquent, un fichier Minidump est créé dans le dossier du journal de SQL Server. En outre, vous voyez l'erreur dans le journal des erreurs de SQL Server suivante sur le serveur miroir :

date heure spid À l'aide de « dbghelp.dll » version '4.0.5'
date heure spid ** Thread de vidage - spid = 31, ce = 0x00000007F9B1C1A0
date heure spid *** Vidage de pile envoyé à C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt

date heure spid * *******************************************************************************

date heure spid *
date heure spid * DÉBUT VIDAGE DE PILE :
date heure spid * 04/01/12 16 : 46 : 21 spid 12100
date heure spid *
date heure spid * Emplacement : loglock.cpp:807
date heure spid * Expression : donner == LCK_OK
date heure spid * SPID : 31
date heure spid * ID de processus : 2228

date heure spid Erreur : 17066, gravité : 16, état: 1.

date heure spid L'Assertion SQL Server : Fichier : <loglock.cpp>, ligne = 807 Failed Assertion = ' résultat == LCK_OK'. Cette erreur peut être liée à la synchronisation. Si l'erreur persiste après la réexécution de l'instruction, utilisez DBCC CHECKDB pour vérifier la base de données pour l'intégrité structurelle ou redémarrez le serveur afin de garantir des structures de données en mémoire ne sont pas endommagés.

</loglock.cpp>date heure spid Erreur : 3624, gravité : 20, état: 1.

date heure spid Un contrôle d'assertion a échoué. Vérifiez le journal des erreurs de SQL Server pour plus d'informations. En règle générale, un échec d'assertion est dû à une corruption de données ou bogue logiciel. Pour vérifier la base de données, envisagez d'exécuter DBCC CHECKDB. Si vous avez accepté d'envoyer des dumps à Microsoft pendant l'installation, un mini vidage est envoyé à Microsoft. Une mise à jour peut-être être disponible auprès de Microsoft dans le dernier Service Pack ou un correctif QFE auprès du Support technique.

date heure spid Erreur : 1454, gravité : 16, état: 1.

date heure spid La mise en miroir de base de données sera suspendue. Instance de serveur «<Instance name="">» a rencontré erreur 3624, état 1, gravité 20 lorsqu'il a été agissant comme un partenaire de mise en miroir de base de données «<database name="">». La base de données mise en miroir de partenaires peut-être tenter de récupérer automatiquement l'erreur et reprendre la session de mise en miroir. Pour plus d'informations, consulter le journal des erreurs pour les messages d'erreur supplémentaires. </database></Instance>


Remarque : Vous devez réinitialiser la mise en miroir de base de données pour résoudre ce problème.

Cause

Ce problème se produit car les informations de compatibilité de verrouillage dans le journal des transactions de la base de données principale ne sont pas transférées vers le serveur miroir.

Contournement

Pour contourner ce problème, exécutez l'instruction BULK INSERT ou BCP sur la base de données principale à l'aide de l'option CHECK_CONSTRAINTS.

Remarque : L'option CHECK_CONSTRAINTS provoque un ralentissement des performances. Toutefois, le verrou d'assertion sur le miroir serveur ne se produit pas.

Plus d'informations

Pendant une opération d'insertion en bloc ou BCP, une transaction enfant désactive l'option CHECK_CONSTRAINTS. Cette transaction enfant utilise un verrou qui est compatible avec les verrous de transaction parent. Les informations de compatibilité sont stockées dans le journal des transactions de la base de données principale. Par conséquent, la demande de verrou de transaction enfant est octroyée sur la base de données principale.

Toutefois, ces informations de compatibilité ne sont pas transférées vers le serveur miroir. Par conséquent, la demande de verrou de transaction enfant est incompatible avec les verrous de transaction parent sur le serveur miroir. Ce scénario provoque l'assertion sur le serveur miroir.

Propriétés

Numéro d'article: 2700641 - Dernière mise à jour: lundi 6 août 2012 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 Enterprise
Mots-clés : 
kbsurveynew kbtshoot kbprb kbmt KB2700641 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: 2700641
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