While executing DBCC REINDEX, my SQL Server get restarted suddenly due to some failure in the hardware. After this we were unable to access the database. I ran DBCC CHECKDB to check consistency which state SQL error
Msg 7929, Level 16, State 1, Line 1 Check statement aborted. Database contains deferred transactions.
unable to open the table all so… and any front end software also.
I have no idea how this error occur? Please help in resolving this Error.
Is your database inaccessible? Well may be you are facing with SQL error 7929.
Dont worry, Here we will going to solve SQL error 7929. But first let us discuss what this error indicates?
SQL Server Error 7929
Sometimes users become unable to access few or all tables in SQL Server database. To know the exact issue, user run DBCC CHECKDB command with or without TABLOCK and encounter error:
Msg 7929, Level 16, State 1, Line 1
Check statement aborted. Database contains deferred transactions.
The main cause of SQL error 7929 is Deferred transactions. Now the question is what does Deferred transactions means? Let us find out.
What is Deferred Transaction in SQL Server:
Deferred transactions is a uncommitted transaction when roll forward phase finishes & encountered an error. This does not allow transaction from being rolled back, resulting transaction in deferred state. Mainly it occurs due to an I/O error preventing to read a page while the database was being rolled forward. Further, File level also result as deferred transactions.
Note: Transactions which are corrupted are deferred only in SQL Server Enterprise.
Know if Your Transactions are Deferred?
Run sys.dm_tran_locks and found that the request id of the query is -3 as the value indicates that the request belongs to deferred Transaction.
Moving Transaction out of Deferred State
The key to move transaction out of deferred state is to start the SQL Server database cleanly without having any I/O errors. If it still persists, fix it by going through below methods:
Reboot the SQL Server database. If the issue was transient, it automatically get resolved.
Offline Filegroup is one of the reason why transactions becomes deferred. If the issue is caused due to Filegroup, bring it online by Restore Database test_database Filegroup-
If you does not require filegroup which has offline status, then make it unused. Sometimes transactions were deferred because the filegroup was off line.
Restore database from good backup.
If transactions were deferred due to the bad page in SQL database and you have no good backup then repair your database by performing following steps:
Set database to Emergency Mode.
Repair your SQL Server database by REPAIR_ALLOW_DATA_LOSS option in any of the DBCC statements: DBCC CHECKDB, DBCC CHECKALLOC, or DBCC CHECKTABLE.
When DBCC command encounters Bad page, it deallocates the page and repair all error related to this. It enables the database to bring back database online from offline mode. It brings the database in Physically consistent state. Additionally, this might result in data loss making this approach to choose as a last option.
If you defunct the offline filegroup, then the possibility of recovering it is very less.
Quickest Method to Repair SQL Server error 7929
If you are looking for a quick solution to fix SQL Server error 7929 and don’t want to loose any data, then without any doubt, go for SQL Database Repair Tool.
The tool is a complete solution for SQL Server related problem. It repairs corrupted MDF & NDF file of any file length. It is a complete package to resolve any type of corruption and help to recover deleted database objects like triggers, tables, keys etc. The tool supports latest SQL Server version to repair corrupted database file.
You just need to perform following steps:
Install and Launch SQL Recovery Tool
Click Open to add master.mdf file.
Choose the SQL version and Click Advance scan
You will get the preview of all recovered SQL database objects and Click Export.
SQL error code 7929 occurs due to the deferred transaction. The blog explains about the same, it covers what SQL Server error 7929 indicates. It also discusses the manual and the quick resolution of fixing SQL Server Error 7929.