Erreur 17066 ou 17310 lors du démarrage de SQL Server

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 3027860
Symptômes
Lors du démarrage de Microsoft SQL Server, vous remarquez un ou plusieurs des problèmes suivants immédiatement après la fin de la restauration de la base de données et les connexions client sont activées.

Symptôme 1

Vous recevez des messages d'erreur et les assertions semblables aux suivants dans le journal des erreurs SQL Server :

2014-12-13 08:03:34.85 spid24s Using 'dbghelp.dll' version '4.0.5'
2014-12-13 08:03:34.85 spid24s **Dump thread - spid = 0, EC = 0x0000000082274B20
2014-12-13 08:03:34.85 spid24s ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0001.txt
2014-12-13 08:03:34.85 spid24s * ***
2014-12-13 08:03:34.85 spid24s *
2014-12-13 08:03:34.85 spid24s * BEGIN STACK DUMP:
2014-12-13 08:03:34.85 spid24s * 12/13/14 08:03:34 spid 24
2014-12-13 08:03:34.85 spid24s *
2014-12-13 08:03:34.85 spid24s * Location: ghost.cpp:1742
2014-12-13 08:03:34.85 spid24s * Expression: tcln1 != NULL
2014-12-13 08:03:34.85 spid24s * SPID : 24
2014-12-13 08:03:34.85 spid24s * Process ID: 35444
2014-12-13 08:03:34.85 spid24s *

2014-12-13 08:03:35.47 spid24s Error: 17066, Severity: 16, State: 1.
2014-12-13 08:03:35.47 spid24s SQL Server Assertion : fichier : <ghost.cpp>, ligne = 1742 Échec de l'Assertion = ' tcln1! = NULL'. Cette erreur est éventuellement liée à un délai d'attente. 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 pour vérifier les structures de données en mémoire ne sont pas endommagés.</ghost.cpp>

Symptôme 2

Vous recevez des messages d'erreur et les exceptions semblables aux suivants dans le journal des erreurs SQL Server :

2014-12-13 12:38:30.25 spid51 Using 'dbghelp.dll' version '4.0.5'
2014-12-13 12:38:30.25 spid51 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0003.txt
2014-12-13 12:38:30.25 spid51 SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2014-12-13 12:38:30.25 spid51 * *******************************************************************************
2014-12-13 12:38:30.25 spid51 *
2014-12-13 12:38:30.25 spid51 * BEGIN STACK DUMP:
2014-12-13 12:38:30.25 spid51 * 12/13/14 12:38:30 spid 51
2014-12-13 12:38:30.25 spid51 *
2014-12-13 12:38:30.25 spid51 *
2014-12-13 12:38:30.25 spid51 * Exception Address = 000000000030D47C Module(sqlservr+00000000000FD47C)
2014-12-13 12:38:30.25 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
2014-12-13 12:38:30.25 spid51 * Access Violation occurred reading address FFFFFFFFFFFFFFFF
2014-12-13 12:38:30.25 spid51 * Input Buffer 54 bytes -
2014-12-13 12:38:30.25 spid51 * exec usp_select1

2014-12-13 12:38:30.77 Server Error: 17310, Severity: 20, State: 1.
2014-12-13 12:38:30.77 Server A user request from the session with SPID 51 generated a fatal exception. SQL Server is terminating this session. Contact Product Support Services with the dump produced in the log directory.

The Access Violation will have the following call stack:

sqlservr ! TaskGhostCleanup::IsHashed + 0x8d
sqlservr ! TaskGhostCleanup::Enqueue + 0 x 32
sqlservr ! IndexRowScanner::MoveToRowOnNextPage + 0x9C.
sqlservr ! IndexDataSetSession::GetNextRowValuesInternal + 0x11cb

Problème 3

Après avoir reçu les messages qui sont mentionnés dans les sections précédentes de symptôme, les messages suivants s'affiche dans le journal des erreurs SQL Server :

2014-12-13 08:04:53.37 Server Process 0:0:0 (0x23c8) Worker 0x000000002880C1A0 appears to be non-yielding on Scheduler 23. Thread creation time: 13062953007877. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 88%. Interval: 70013 ms.
2014-12-13 08:04:53.37 Server Process 0:0:0 (0x71d8) Worker 0x000000002A8D21A0 appears to be non-yielding on Scheduler 30. Thread creation time: 13062953007891. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 88%. Interval: 70013 ms.
2014-12-13 08:04:53.38 Server ***Unable to get thread context for spid 0
2014-12-13 08:04:53.38 Server * *******************************************************************************
2014-12-13 08:04:53.38 Server *
2014-12-13 08:04:53.38 Server * BEGIN STACK DUMP:
2014-12-13 08:04:53.38 Server * 12/13/14 08:04:53 spid 29488
2014-12-13 08:04:53.38 Server *
2014-12-13 08:04:53.38 Server * Non-yielding Scheduler
2014-12-13 08:04:53.38 Server *
2014-12-13 08:04:53.38 Server * *******************************************************************************
2014-12-13 08:04:53.38 Server Stack Signature for the dump is 0x0000000000000341
2014-12-13 08:04:53.38 Server Stack Signature for the dump is 0x0000000000000341 External dump process returned no errors.
2014-12-13 08:04:55.43 Server Process 0:0:0 (0x9358) Worker 0x0000000081CE41A0 appears to be non-yielding on Scheduler 4. Thread creation time: 13062953009701. Approx Thread CPU Used: kernel 0 ms, user 15 ms. Process Utilization 0%. System Idle 88%. Interval: 70011 ms.

SQL Server ne répondent pas aux demandes des utilisateurs à ce stade. Si c'est le cas, vous devez redémarrer le service pour corriger la situation.
Cause
Ce problème se produit parce que les requêtes utilisateur essaient d'utiliser les files d'attente de nettoyage des éléments fantômes avant l'initialisation complète de ce processus.
Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le Service Pack 1 pour SQL Server 2014.

Pour plus d'informations sur le Service Pack 1 (SP1) de SQL Server 2014, reportez-vous à la section. bogues qui sont résolus dans le Service Pack 1 de SQL Server 2014.

Correctif pour le Service Pack 4 de SQL Server 2008

Pour résoudre ce problème, appliquez le KB 3034373 : Un correctif de mise à jour à la demande est disponible pour le Service Pack 4 de SQL Server 2008.

Correctif pour le Service Pack 3 de SQL Server 2008 R2

Pour résoudre ce problème, appliquez le KB 3033860 : Un correctif de mise à jour à la demande est disponible pour le Service Pack 3 de SQL Server 2008 R2.

Informations de mise à jour cumulative

L'amélioration de la fonctionnalité a été introduite dans la mise à jour cumulative suivante de SQL Server.

Mise à jour cumulative 6 pour SQL Server 2014

Mises à jour cumulatives 4 pour le Service Pack 2 de SQL Server 2012

Mise à jour cumulative 14 pour SQL Server 2012 SP1

À propos des mises à jour cumulatives pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et des correctifs de sécurité qui ont été inclus dans la précédente mise à jour cumulative. Découvrez les dernières mises à jour cumulatives pour SQL Server :
Contournement
Pour contourner ce problème, procédez comme suit :
  1. Configurer -T669 en tant que paramètre de démarrage. Ces indicateurs de suivi empêchent les requêtes utilisateur d'être insérées dans la file d'attente des demandes pour le processus de nettoyage fantôme.
  2. Définir une alerte de l'Agent de SQL Server pour déclencher une tâche sur 3408 de message SQL. Par exemple, définir l'alerte suivante :
    La récupération est terminée. Il s'agit d'un message d'information uniquement. Aucune action utilisateur n'est requise.
  3. À l'intérieur de ce travail, exécuter un script TSQL d'attendre 5 à 10 minutes, puis exécutez le DBCC TRACEOFF (669, -1) commande.
Cette procédure permet de s'assurer que cet indicateur de trace est actif uniquement pendant le démarrage de SQL Server. L'utilisation de cet indicateur de suivi n'affecte pas le fonctionnement normal du processus de nettoyage en arrière-plan ghost.
Statut
Microsoft a confirmé qu'il s'agit d'un problème avec SQL Server et étudie actuellement un correctif pour ce problème. Cet article de la Base de connaissances est mis à jour avec des informations supplémentaires dès que possible.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 3027860 - Dernière mise à jour : 11/22/2015 07:35:00 - Révision : 10.0

Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Express Edition

  • kbtshoot kbprb kbmt KB3027860 KbMtfr
Commentaires