How to Troubleshoot SQL Server Error 8921 and 8967?

Stephen West ~ Modified: August 7th, 2018 ~ SQL Master Database, SQL Server Error ~ 4 Minutes Reading

Introduction

SQL Server is RDMS from Microsoft that uses Structured Query Language to store and retrieve data from the database. This provides enhanced reliability, flexibility and security to the database. Microsoft has a dozen of versions of SQL Server. SQL Server suits for a small organization as well as for a big enterprise. The remote database Server helps in deploying client-Server applications. In this tutorial we will know, how can we fix SQL Server Error 8921 and Error 8967.

SQL Error Messages

SQL Server has predefined Error messages to be prompted at the time of particular instances in the database. Each Error is defined with a severity level and an Error message. The Error message gives a brief description about the Error and the severity level is an indication to the depth of Error. The severity level is indicated by the numbers from 0 to 24. Message with severity 0 is just for information, whereas severity level 24 shows a high risk at database level.

Description of SQL Server Error 8921 and 8967

Severity Level: 16

Message:

“CHECKTABLE terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous Errors.”

Error 8967

Severity Level: 16

Message:

“An internal Error occurred in DBCC which prevented further processing. Please contact Customer Support.”

Cause of Error

SQL Server database Error can happen due to several reasons from the inconsistency of the database to its corruption. The inconsistencies in database can happen if:

  • Metadata of the database is corrupted so that the properties are altered and SQL Server cannot access the files.
  • Database snapshot corruption affects the consistency of the database and thereby files are inaccessible.
  • Any inconsistency in the database files MDF and NDF are due to hardware failure can cause Error.
  • Restoring of database is done with an Error message CONTINUE_AFTER_ERROR also causes Error.

Identify the Situation

How to identify the situation that you have met with SQL Server Error 8921 or 8967? When you come across any of the scenarios described below you have probably met with Error 8967 or 8921.

  • SQL Server interface prompts the message as ERROR 8967 or ERROR 8921.
  • Some Error messages prevent you from restoring the databases from backup.
  • You may be able to restore the database from same backup showing the Error “CONTINUE AFTER ERROR” message.

Handling SQL Errors

The SQL Errors can be handled in three different levels as follows:

  • Restoring from healthy backup if possible
  • Hardware level troubleshooting if needed.
  • Using DBCC CHECKDB command.

Restore from Backup

If a healthy backup of the database is available with you, then prefer this solution so that the SQL Error can be handled. Always maintain a regular backup of the database in order to overcome the data loss due to any internal or external hazards. DBAs always perform and maintain a good strategy of backing up and restoring the databases. This method is possible only if backup is accessible in a good condition.

Hardware Level Troubleshooting

Analyze the Error logs obtained by running hardware diagnostics in Windows NT system and try to fix the hardware Errors if possible. Even you can replace the hardware if hardware doesn’t meet the requirement, in case of urgency. The hardware failure can happen due to the bad sectors on disk or of compressed disks etc. The inefficiency in hardware design sometimes does not meet the input output requirements.

DBCC CHECKDB

DBCC CHECKDB is the default command provided by Microsoft to check the integrity and consistency of the Microsoft SQL Server Databases. The syntax is:

DBCC CHECKDB 
[
[ ( database_name | database_id | 0
[ , NOINDEX 
| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
    ) ]
    [ WITH 
        {
            [ ALL_ERRORMSGS ]
[ , EXTENDED_LOGICAL_CHECKS ] 
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY]
[ , { PHYSICAL_ONLY | DATA_PURITY } ]
        }
    ]
]

This Query checks consistency of pointers, order of indexes, page table mapping, offsets etc of the specified database. To recover the specified Error you should work with the TABLOCK hint in the DBCC CHECKDB command.

Observation

If none of the above solutions meet the requirements then take the help of a third party SQL Recovery Software commercial wares to immediately resolve SQL Server Error 8921 and Error 8967.