Sometimes, you face a situation where the database becomes inaccessible. When you open the SQL Server Management Studio (SSMS), go to the Object Explorer, and check the database, you will find that the database is in Suspect mode.
There are several reasons that can lead to the SQL database is in suspect mode issue. Here are some common reasons:
- Hardware failure or a hard disk failure can damage the database resulting in the database is in suspect mode issue.
- Power outages can also damage the hard disk and the database.
- Log files are corrupted due to Windows crash, SQL Server failure, or problems with the hardware.
- Unexpected shutdown of server or system can also set the database in suspect status.
- When the database is shut down due to a power outage or a software crash, the database can get corrupted and show the suspect status.
- When a database is interrupted unexpectedly, the transactions are not completed, which can leave the database in an inconsistent state.
- The database itself is damaged or corrupted.
- When the database is in recovery mode and the recovery fails for some reason, then the database may get corrupted and display the suspect mode.
- Insufficient storage space, network problems during restoration, problem with the backup, or bugs in the operating system can also cause inconsistencies in the database.
- Antivirus application has stopped the restoration process in SQL Server, causing damage to the database.
Now let’s see how to recover SQL database from suspect mode.
Table of Contents
Methods to Recover SQL Server Database from Suspect Mode
You can follow the below methods to recover SQL database from suspect mode.
Restore the Database from Backup
If your database is in suspect mode, then the easiest option is to restore the database from backup. If you have a recent healthy backup available, you can restore the database from backup by using the following T-SQL command:
RESTORE DATABASE stellardb
FROM DISK = ‘C:\backup\stellardb.bak’
WITH REPLACE;
Method 2: Repair the Database using the DBCC CHECKDB Command
If don’t have the database backup or the backup is obsolete, then you can repair the database using the DBCC CHECKDB command. You can use the following code to repair the database:
USE master
GO
ALTER DATABASE stellardb SET EMERGENCY
GO
DBCC CHECKDB (stellardb)
GO
ALTER DATABASE stellardb SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
DBCC CHECKDB (stellardb, REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE stellardb SET MULTI_USER
GO
The code will repair the master database (named stellardb). It will first set the database to emergency mode. Then, set the database to single-user mode to avoid interruptions. After that, it will repair the database and finally, set the database back to multi-user mode.
Method 3: Recover Database using Third-Party MS SQL Repair Software
If the DBCC CHECKDB command does not work, you can try a third-party SQL database repair software, like Stellar Repair for MS SQL. This is a special software designed to repair both the main and secondary database files in SQL Server. It can easily repair the corrupt database file and recover all the data. Follow the below steps to repair the database.
Note: Before using the software, you need to stop your SQL Server service to disconnect your database and create a copy the data file.
- Launch the Stellar Repair for MS SQL software, select the corrupt database (MDF) file, and press the Repair Optionally, you can also select the Include Deleted Records option.
- If you don’t know the file location, you can use the Find button to find the data file.
- After the database is repaired, the software will show all the recoverable data. You can click the Save option to save the data.
- You can save the repaired database in a new database file or to a live database. Optionally, you can export the data to Excel, CSV, or HTML file.
Tips to Prevent the Database is in Suspect Mode Issue
Here are some useful tips that can help you to prevent the database is in suspect mode issue or corruption in the database:
- Always have UPS (Uninterruptible Power Supply) system to prevent power outage problems. Also, you can have an auxiliary power system.
- Use a monitoring software to monitor the status of your hard disks. This will help detect issues with hard disks and let you know if hard disks are failing.
- Regularly check and monitor the hardware. It will help detect issues with the hardware and help take the action before they can cause any damage.
- Use an array of disks or the RAID system to avoid the storage space issues.
Conclusion
There are various reasons that can result in the database is in suspect mode issue. Above, we have discussed how to recover SQL database from suspect mode. If the database is corrupted, you can use the DBCC CHECKDB command to repair the database. If the command fails to repair the database, you can use Stellar Repair for MS SQL that can easily repair the database and recover all the data with complete integrity.