Summary: This blog discusses the common causes behind the ‘SQL Server database stuck in recovery mode’ issue. Also, it describes how to troubleshoot and fix the issue. If the recovery process fails to bring the database online, try using an SQL recovery tool to regain access to the database – without prolonged downtime.
When restarting SQL Server or services after SQL database shutdown, server crash, or database corruption, the database automatically goes into ‘recovering’ state. The database becomes online after completion of the recovery process. However, if the database is taking too long to recover, it is important to know why the database is stuck in recovery.
What Causes SQL Server Database Stuck in Recovery Mode?
You can check SQL Server error log to know the cause behind the database stuck in RECOVERY mode issue. Common causes behind the issue includes:
- You might be restoring the database from full, differential, and log backups with the NORECOVERY option enabled, but RECOVERY is not specified during the last restore.
- As per MSDN, transaction log can fill when a database is in recovery. SQL Server stops all the running transactions until the log storage is freed, slowing down the database recovery. Several Virtual Log Files (VLFs) in a transaction log can also slow down the recovery process.
- The recovery process might stop if your database is damaged or have some sort of corruption.
Troubleshooting the ‘SQL Server Database in Recovery Mode’ Issue
Following are some simple troubleshooting tips to resolve the SQL Server database in recovery mode issue:
Tip 1 – Restore Database with RECOVERY
Note: Running ‘RESTORE with Recovery’ will make the database go through the same recovery steps again. Avoid this option if you have a large database.
Execute the following query to bring your database back online:
RESTORE DATABASE db_name WITH RECOVERY;
The query will rollback any uncommitted transactions and bring the database out of recovery mode.
Tip 2 – Apply Microsoft Fixes
If you’ve too many VLFs inside the transaction log, resulting in slow database recovery, applying Microsoft fixes may help.
Tip 3 – Run DBCC CHECKDB to Determine Database Corruption
Run DBCC CHECKDB on the problematic database. If it reports consistency errors, you must repair the database using the minimum level of repair option. For more information, read this: Read More
If these troubleshooting tips fail, try resolving the issue using the solutions discussed in the next section.
Solutions to Fix the SQL Server Database in Recovery Mode Issue
Following are the two solutions you can use to fix the issue:
Solution 1 – Restore Database from Most Recent Backup
Note: Skip to the next solution if the backup is obsolete or corrupt.
If database recovery process seems stuck for ages, try restoring the database from an updated backup copy. To do so, follow these steps:
- Open SQL Server Management Studio (SSMS), right-click on Databases, and click Restore Database.
- Under the Source section, select the Device option and then click the button next to it.
- In the dialog box that opens, press Add.
- Locate and select the backup file (.bak) you want to restore, then press OK.
- Click OK again.
- In the Restore Database screen, enter name of the database you want to restore and click OK.
- The database will be restored.
Note: Restoring a large database containing multiple tables can take a lot of time.
Solution 2 – Use a Professional SQL Database Recovery Tool
If backup is not available or you want to quickly restore the database, using a SQL recovery tool, such as Stellar Repair for MS SQL may help. The software repairs the .mdf/.ndf files and restores the database to its original form.
Check out this video to understand how the software works:
Conclusion
This article discussed about SQL database is stuck in ‘Recovering’ state. It also outlined the common causes behind the SQL Server database in recovery mode issue and troubleshooting tips to fix the issue. If these tips doesn’t help, implementing the solutions may help bring the DB to a consistent state. A SQL database recovery tool can come in handy when everything else fails to restore the database.