CORRECTIF : DBCC CHECKDB peut provoquer une violation d'accès lorsque la base de données est en cours d'utilisation

Traductions disponibles Traductions disponibles
Numéro d'article: 293292 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F293292
N° DE BOGUE : 351941 (SHILOH_BUGS)
Agrandir tout | Réduire tout

Symptômes

La commande DBCC CHECKDB peut provoquer une violation d'accès quand elle est exécutée sur une base de données à laquelle d'autres utilisateurs accèdent activement au même moment.

Résolution

Pour résoudre ce problème, procurez-vous le dernier Service Pack de SQL Server 2000. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
290211 INF : Procédures pour obtenir le dernier Service Pack de SQL Server 2000

Contournement

Exécutez DBCC CHECKDB en mode Utilisateur unique ou lorsque la charge de travail est faible.

Statut

Microsoft a confirmé l'existence de ce problème dans SQL Server 2000. Ce problème a été corrigé dans le Service Pack 1 de SQL Server 2000.

Plus d'informations

La violation d'accès entraîne la rupture de la connexion à partir de laquelle est exécutée la commande DBCC CHECKDB ; cependant, la base de données ne subit aucun dommage. Vous pouvez redémarrer la commande en toute sécurité, de préférence à un moment où la charge de travail est faible.

Il se peut que la trace de la pile suivante figure dans le journal d'erreurs :
2001-01-16 13:47:54.86 spid59    SqlDumpExceptionHandler: Le processus 2624 a généré 
une exception fatale c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server termine ce processus.
*******************************************************************************
*
* DÉBUT DU VIDAGE DE LA PILE :
*   01/16/01 13:47:54 spid 59
*
*   Adresse d'exception = 008DBAD2 (CheckTables::PageUpdate(class CheckRecInfo &,unsigned char,unsigned char) + 00000092 Line 0+00000000)
*   Code d'exception    = c0000005 EXCEPTION_ACCESS_VIOLATION
*   Violation d'accès lors de la lecture de l'adresse 00000012
* Mémoire tampon d'entrée 50 octets -
*  dbcc checkdb([MSSales])  
*  

Extrait du vidage de la pile
008DBAD2 Module(sqlservr+004DBAD2) (CheckTables::PageUpdate(class CheckRecInfo &,unsigned char,unsigned char)+00000092)
008E88B9 Module(sqlservr+004E88B9) (CheckTables::ProcessLogModifyRow(class PageLog const *,class CheckRecInfo &,unsigned char,enum LOGR_UNDO_FLAG)+00000208)
008C91D1 Module(sqlservr+004C91D1) (CheckAggregate::ProcessLog(class LogRec const *,class CheckRecInfo &,enum LOGR_UNDO_FLAG)+000000B6)
008C938E Module(sqlservr+004C938E) (CheckAggregate::ProcessLogRecord(class LogRec const *,class LSN const &,enum LOGR_UNDO_FLAG)+0000009E)
008DB1F3 Module(sqlservr+004DB1F3) (CheckLogReader::ReadLog(int (__cdecl*)(class LogRec const *,class LSN const &,enum LOGR_UNDO_FLAG),class CAutoLatch &)+00000303)
008DB495 Module(sqlservr+004DB495) (CheckLogReader::ScanLog(int (__cdecl*)(class LogRec const *,class LSN const &,enum LOGR_UNDO_FLAG))+000000D6)
008C8EA1 Module(sqlservr+004C8EA1) (CheckAggregate::GetNextFact(void)+000000F2)
008EB20E Module(sqlservr+004EB20E) (CTRowsetInstance::FGetNextRow(void)+00000216)
0091FD06 Module(sqlservr+0051FD06) (CUtRowset::GetNextRows(unsigned long,long,long,unsigned long *,unsigned long * *)+00000050)
0070FAA3 Module(sqlservr+0030FAA3) (CQScanRmtScan::GetRow(unsigned long *,unsigned long *)+00000155)
00719763 Module(sqlservr+00319763) (CQScanXProducer::Open(unsigned long *)+0000039B)
007191AA Module(sqlservr+003191AA) (FnProducerThread(void *)+0000022C)
004DF8D2 Module(sqlservr+000DF8D2) (subproc_main(void *)+000000E3)
410735D0 Module(UMS+000035D0) (ProcessWorkRequests(class UmsWorkQueue *)+00000264)
4107382C Module(UMS+0000382C) (ThreadStartRoutine(void *)+000000BC)
7800BEA1 Module(MSVCRT+0000BEA1) (_beginthread+0000008B)
77E837CD Module(KERNEL32+000037CD) (_BaseThreadStart@8+00000052)
-------------------------------------------------------------------------------
Dump thread - spid = 59, PSS = 0x4a569228, EC = 0x4a569538
Stack Dump being sent to d:\MSSQL\log\SQL00164.dmp

Propriétés

Numéro d'article: 293292 - Dernière mise à jour: vendredi 7 novembre 2003 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
Mots-clés : 
kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB293292
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