Les erreurs 17053 et 926 peuvent être consignées dans le journal des erreurs après l’exécution d’une commande DBCC dans SQL Server

Cet article présente l’erreur 17053 et l’erreur 926 qui peuvent être signalées lorsque vous exécutez une DBCC commande dans SQL Server et fournit les étapes de résolution des erreurs de système d’exploitation sous-jacentes 112, 665 ou 1450.

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 926070

Symptômes

Vous exécutez l’une des commandes suivantes DBCC dans Microsoft SQL Server :

  • DBCC CHECKDB
  • DBCC CHECKALLOC
  • DBCC CHECKTABLE
  • DBCC CHECKCATALOG
  • DBCC CHECKFILEGROUP

La commande peut échouer, et vous pouvez obtenir les erreurs 17053, 926 et d’autres messages d’erreur dans la sortie de l’application cliente et le journal des erreurs SQL Server.

Erreurs

L’erreur 926 indique que la base de données est marquée comme suspecte. Ce message d’erreur fait référence au instantané interne et non à la base de données réelle. La status de la base de données est en ligne et la base de données est fonctionnelle.

L’erreur 17053 est une erreur SQL Server utilisée pour divulguer l’erreur de système d’exploitation sous-jacente. Il contient le nom des fichiers utilisés pour le instantané interne. Le message d’erreur indique la véritable raison du problème.

Les sections suivantes présentent les messages d’erreur détaillés que vous pouvez obtenir. Pour plus d’informations sur ces messages d’erreur, consultez la section Plus d’informations .

Erreur du système d’exploitation 112 : espace disque insuffisant

Les messages d’erreur qui affichent l’erreur de système d’exploitation sous-jacente 112, « Il n’y a pas assez d’espace sur le disque ». Peuvent être enregistrés dans le journal des erreurs SQL Server.

2022-09-01 17:33:24.48 spid54 35 transactions rolled forward in database 'ProductionData' (11). This is an informational message only. No user action is required.
2022-09-01 17:35:39.16 spid54 4 transactions rolled back in database 'ProductionData' (11). This is an informational message only. No user action is required.
2022-09-01 17:36:31.76 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.76 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.76 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.76 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.77 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.77 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.80 spid54 DBCC CHECKDB (ProductionData) executed by DomainName\UserName found 0 errors and repaired 0 errors. Elapsed time: 0 hours 3 minutes 19 seconds.
2022-09-01 17:36:31.90 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.90 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:31.90 spid53 Error: 17053, Severity: 16, State: 1.
2022-09-01 17:36:31.90 spid53 E:\SQLData\ProductionData.mdf:MSSQL_DBCC11: Operating system error 112(There is not enough space on the disk.) encountered.
2022-09-01 17:36:32.30 spid54 Error: 926, Severity: 21, State: 6.
2022-09-01 17:36:32.30 spid54 Database 'ProductionData' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.

Dans certains cas, vous pouvez recevoir le message d’erreur suivant :

Msg 5128, Level 17, State 2, Line 6
Write to sparse file `E:\CreateFile\ProductionData.mdf:MSSQL_DBCC11` failed due to lack of disk space.

Dans ce cas, l’application cliente qui exécute les DBCC commandes peut afficher les entrées suivantes dans le jeu de résultats de l’application :

DBCC results for 'ProductionData'.
CHECKDB found 0 allocation errors and 0 consistency errors in database 'ProductionData'.
Msg 926, Level 21, State 6, Line 1
Database 'ProductionData' cannot be opened. It has been marked SUSPECT by recovery. See the SQL Server errorlog for more information.
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.

Si la base de données interne instantané que les DBCC commandes utilisent n’a pas pu être créée, vous recevez les erreurs suivantes dans l’application cliente qui émet les DBCC commandes :

Msg 1823, Level 16, State 1, Line 1
A database snapshot cannot be created because it failed to start.

Msg 7928, Level 16, State 1, Line 1
The database snapshot for online checks could not be created. Either the reason is given in a previous error or one of the underlying volumes does not support sparse files or alternate streams. Attempting to get exclusive access to run checks offline.

Msg 5030, Level 16, State 12, Line 1
The database could not be exclusively locked to perform the operation.

Msg 7926, Level 16, State 1, Line 1
Check statement aborted. The database could not be checked as a database snapshot could not be created and the database or table could not be locked. See Books Online for details of when this behavior is expected and what workarounds exist. Also see previous errors for more details.

Msg 5106, Level 17, State 2, Line 1
Write to sparse file 'E:\Data\LogFUllTest_Data.mdf:MSSQL_DBCC10' failed due to lack of disk space.

Erreur de système d’exploitation 665 - Limitation du système de fichiers, erreur de système d’exploitation 1450 -Ressources système insuffisantes

Si la base de données interne instantané rencontre des erreurs 1450 ou 665, voici une séquence classique que vous pouvez remarquer dans le journal des erreurs SQL Server :

2008-05-21 13:03:45.67 spid500 272 transactions rolled forward in database 'MYDATABASE' (12). This is an informational message only. No user action is required.
2008-05-21 13:03:45.84 spid500 2 transactions rolled back in database 'MYDATABASE' (12). This is an informational message only. No user action is required.
2008-05-21 13:03:46.97 spid500 Recovery completed for database MYDATABASE (database ID 12) in 5 second(s) (analysis 602 ms, redo 3954 ms, undo 105 ms.) This is an informational message only. No user action is required.
2008-05-21 13:36:48.25 spid480 The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00001b35138000 in file 'I:\MSSQL\DATA\mscrm_data1.ndf:MSSQL_DBCC12'.
2008-05-21 13:36:48.26 spid480 Error: 17053, Severity: 16, State: 1.
2008-05-21 13:36:48.26 spid480 C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.
2008-05-21 13:36:48.27 spid480 The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00001b35138000 in file 'C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12'.
2008-05-21 13:36:48.27 spid480 Error: 17053, Severity: 16, State: 1.
2008-05-21 13:36:48.27 spid480 C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.
2008-05-21 13:36:48.37 spid480 The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00001b35138000 in file 'C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12'.
2008-05-21 13:36:48.37 spid480 Error: 17053, Severity: 16, State: 1.
2008-05-21 13:36:48.37 spid480 C:\MSSQL\DATA\MyDatabase.mdf:MSSQL_DBCC12: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.
2008-05-21 13:36:48.37 spid500 DBCC CHECKDB (MYDATABASE) executed by DomainName\UserName found 0 errors and repaired 0 errors. Elapsed time: 0 hours 33 minutes 16 seconds. Internal database snapshot has split point LSN = 0000759c:002547bc:0040 and first LSN = 0000759c:0023696d:0049. This is an informational message only. No user action is required.

Plus d’informations

  • Ces messages d’erreur proviennent de différentes sessions actives (SPID). SPID 54 est l’ID de session qui exécute la DBCC commande. SPID 53 est l’ID de session qui exécute une transaction utilisateur.
  • Ces messages d’erreur indiquent la progression des transactions et la restauration des transactions. Les messages sont générés pendant la phase initiale de l’exécution de la DBCC commande. Lorsque vous exécutez une DBCC commande, la DBCC commande tente d’abord de créer un instantané interne. Lorsque le instantané est créé, la récupération de la base de données est effectuée sur cette instantané pour mettre l’instantané dans un état cohérent. Les messages d’erreur reflètent cette activité.
  • La base de données interne instantané utilise le même nom que la base de données réelle. Par conséquent, ces messages d’erreur contiennent le nom de la base de données.
  • Même si le message du journal des erreurs indique que l’opération DBCC CHECKDB est terminée, elle doit être considérée comme un arrêt anormal. Vous devez réexécuter la DBCC CHECKDB commande pour l’autoriser à s’exécuter jusqu’à ce qu’elle soit terminée pour évaluer la cohérence de la base de données. Dans ce cas, reportez-vous à la sortie de la DBCC CHECKDB commande renvoyée au client pour comprendre quels objets ont été vérifiés et signalés propre.

Cause

Dans SQL Server, DBCC les commandes utilisent des instantanés de base de données en lecture seule internes. Pour plus d’informations, consultez Comment DBCC CHECKDB crée une base de données instantané interne à partir de SQL Server 2014. Ces instantanés de base de données sont créés sur le même lecteur que celui où se trouvent les fichiers de données de base de données correspondants. Les instantanés de base de données augmentent proportionnellement aux modifications de données dans la base de données où DBCC les commandes s’exécutent. Si l’activité transactionnelle continue dans la base de données utilisateur, les instantanés de base de données internes créés par DBCC les commandes peuvent continuer à croître et rencontrer des problèmes d’espace disque. Consultez Espace disque requis pour les instantanés de base de données. Étant donné que la base de données instantané fichiers et les fichiers de données réels résident sur le même lecteur de disque, les deux jeux de fichiers sont en concurrence pour l’espace disque. Dans ce cas, les transactions d’application ou les transactions utilisateur sont prioritaires. La base de données interne instantané utilisée par DBCC est marquée comme suspecte. Par conséquent, les DBCC commandes génèrent des erreurs et ne peuvent pas être terminées.

Les écritures dans la base de données interne instantané peuvent échouer en raison d’un espace disque insuffisant. D’autres problèmes, tels que l’erreur de système d’exploitation 665, peuvent également entraîner des problèmes similaires et rendre la base de données interne instantané à un état suspect.

Résolution

Utilisez la section de résolution qui correspond à l’un des problèmes que vous avez peut-être résolus :

Erreur de système d’exploitation 112

Pour résoudre l’erreur de système d’exploitation 112 qui est générée dans SQL Server’erreur 17053, utilisez une ou plusieurs des alternatives suivantes :

  • Libérer de l’espace disque sur le lecteur où réside la base de données afin de DBCC CHECKDB pouvoir créer une base de données instantané.
  • Exécutez DBCC CHECKDBWITH TABLOCK pour empêcher la création d’un instantané interne.
  • Utilisez une technologie de réplication telle que groupes de disponibilité, copie des journaux de transaction, sauvegarde/restauration ou Réplication SQL Server et créez une copie de la base de données sur un autre serveur. Exécutez ensuite la DBCC CHECKDB commande sur ce serveur.

Erreurs de système d’exploitation 665 et 1450

Pour résoudre les erreurs de système d’exploitation 665 ou 1450 générées dans l’erreur 17053, utilisez une ou plusieurs des solutions fournies dans les erreurs de système d’exploitation 665 et 1450 signalées pour les fichiers SQL Server.