How to Repair Microsoft SQL Server Database Error 8967?

The SQL Server database Error 8967 is a common error in SQL Server on-premises when you restore your database, as and when the restored database gets corrupt.

In this new article, we will show how to deal with this error. We will explain the error and show some possible solutions to this problem.

Getting started

Sometimes, it is not possible to restore the database because restoring process has some errors. However, you can restore the database ignoring the errors using the following sentences:

RESTORE DATABASE [db_name] FROM  DISK = N’C:\Backup\db1.bak’

WITH CONTINUE_AFTER_ERROR;

The option continue_after_error allows to restore even if there are errors in the backup replicated in the database restored. In this scenario, if there were errors in the database restoration, it is a good practice to run a DBCC CHECKDB command.

The command will check if the database does not have errors. A common error in this scenario is the error 8967.

SQL server database error 8967

If the database was restored, but ignoring errors, your database might be corrupt and if you run the DBCC CHECKDB, you may find an error. The error 8967 is like the following:

Msg 8967, Level 16, State 216, Server SaleServer, Line 2
An internal error occurred in DBCC which prevented further processing. Please contact Customer Support.
DBCC results for ‘marketingdb ‘.

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

DBCC is the Database Console Command. The DBCC oversees the following verifications:

  • Maintenance used to maintain databases, data files, file groups, indexes.
  • Informational tasks to send message about the status of the components
  • Validation of the operations in the database, indexes, catalogues, file groups.
  • Miscellaneous like trace flags

An error of level 16 in SQL Server means that the problem can be solved by the user. The error also mentions the tempdb system database. This system table is used to store temporary objects and internal user values. If it does not have enough space it can be a problem. Check the space for the tempdb then proceed further.

You can also check the SQL Server logs for additional information. Go to SQL Server Management Studio>Management>SQL Server Logs:

Check SQL Server Log

You may find the following message in the SQL Server Logs:

2017-07-26 08:13:49.21 spid58 DBCC encountered a page with an LSN greater than the current end of log LSN (142131:0:5) for its internal database snapshot. Could not read page (9647:-33648958), database ‘SalesDB’ (database ID 6), LSN = (-1302553601:2131886119:4432), type = 255, isInSparseFile = 1.   Please re-run this DBCC command.

The LSN is the Log Sequence Number. Every record in the log files has an LSN id. The error message will also show the pages with errors and identify the LSN with problems.

Possible solutions to fix error 8967

  1. DBCC CHECKDB with TABLOCK: One possible solution is to run the DBCC CHECKDB  with the TABLOK option:

DBCC CHECKDB (SalesDB) WITH TABLOCK

The TABLOCK option will help you to LOCK the database and run the checkdb faster and avoiding the creation of internal database snapshots. The DBCC CHECKDB by default creates this database snapshot internally to makes some consistency checks.

  1. Switch to Simple Recovery Model: Other solution could be to switch to the Simple recovery model, checkpoint to truncate the log, and switch back to the Full recovery model. To modify the FULL recovery model to Simple, you can run the following T-SQL sentences:

ALTER DATABASE salesDB SET RECOVERY SIMPLE

GO

To return to FULL recovery model, run these T-SQL sentences:

ALTER DATABASE salesDB SET RECOVERY FULL

GO

Another way to change the recovery model is using the SSMS. Right-click the database and in properties go to the options page. Change the Recovery Model:

Change SQL Server Recovery Model

The recovery model is related to the type of transactions logged in the database logs. Simple will collect less information than a full mode.

  1. Use Stellar Repair for MS SQL: This SQL database repair software can easily fix the SQL server database error 8967.

Free download

How to use SQL repair software

  1. Download and install the software
  2. Select the MDF file and click Repair. If you want to recover the deleted records then, check the ‘Include Deleted Records‘ option.

  1. The software will repair the database and show the preview of repaired database objects
  1. You can save the database into New and Live database

This software with few clicks will repair the database and avoid the 8967 error message.

What Microsoft MVPs says about the software

“I would recommend this tool to repair corrupt SQL Server database. This saves lot of your time and effort and especially if you do not have expert knowledge about database and recovery. Considering how much downtime can cost such tools are great lifesavers.” (Shashank Singh, Microsoft MVP) Reference

“For my test database, the software worked flawlessly and I have to say that it was nice that I could browse the data inside the repair app as well.” (Gary Williams, IT and VMware Expert) Reference

Conclusion

In this article, we explained the SQL server database error 8967 that can be detected after restoring a database with errors. We also learned how to check the related messages in the SQL Error logs. Stellar Repair for MS SQL is a simple SQL recovery tool. It can be used to solve this problem.

If you have questions or comments, feel free to write to us.

Comments(12)
  1. Michelle Smith April 15, 2019
    • Eric Simson April 16, 2019

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.