Home » Blog » SQL Server » Know How to Monitor SQL Database Suspect Pages

Know How to Monitor SQL Database Suspect Pages

author
Published By Nilesh Kumar
Debasish Pramanik
Approved By Debasish Pramanik
Published On July 6th, 2022
Reading Time 4 Minutes Reading
Category SQL Server

In SQL Server, there are many key things to be monitors such as CPU, Memory, and other I/O. However, one more thing that rarely comes up for monitoring is Suspect Pages in dbo.suspect.pages table in MSDB database.  Having a mechanism to observe and alert on the table is used to do as a part of the observation and for SQL Server Health Management. Therefore, this blog would be extremely helpful for you if you are handling SQL Server.

Corruption in SQL Server Database

We all wish to avoid or prevent a database from corruption, but there is some corruption, we cannot avoid or prevent. As a result, we face different corruption while using the SQL server database. We cannot avoid, but we can perform certain tasks that will be helpful to catch the corruption issues.

  • By ensuring that the databases are using CHECKSUM page verification
  • By doing DBCC CHECKDB on a regular basis.
  • By using the CHECKSUM option while performing backups.
  • By monitoring the 823, 824, & SQL server 825 error.
  • By monitoring the table content of dbo.suspect_pages in MSDB.

There are many other ways to check corruption issues but Monitor SQL database Suspect pages are among one of them. Before proceeding further let us understand about dbo.suspect_pages.

Download Purchase Now

What is dbo.suspect_pages

The dbo.suspect_pages is a table within the MSDB database, where the SQL Server logs about corrupt database pages encounter during querying of the database. Therefore, if you have a DML operation which acceses the corrupt Page then it is recorded or logged here. that means you can identify corruption in your database without the DBCC CHECKDB routine.

Monitor Corruption in Database Table

There are several status values based on the type of detected corruption and also tell whether it has been removed or not. So, before monitoring the table it is important to understand the status values. Moreover, a simple check is not sufficient for more than one returned record from the table.

These foremost statuses are indicating that there is corruption present in the table and has not been fixed and as such require a solution. The first four values show that corruption is still there and has not been removed yet. For this, it is necessary to identify the corruption in the pages and the database This can be done by joining sys.databases and sys.master_files as shown below:

As a result, this query will provide you high-level view where the user found corruption in the SQL Database. The users can use DBCC CHECKDB Commands or backups to recover your crucial database.

Monitoring of SQL Database Suspect Pages  

While monitoring the dbo.suspect_pages table, we have to identify the number of suspect pages that have been logged or encountered in the database. When the value of suspect pages found to be greater than 0, then some form of report is required. In this situation, my preference is to use a scheduled job to query the suspect pages table and inform from there using database mail.

Manage Suspect Table Using SQL Server Management Studio

  1. Go to Object Explorer, connect to the Database engine>>Expand the instance, and then expand Databases.
  2. In System database>>expand MSDB database>>expand Tables, and then expand System Tables.
  3. Now, expand the dbo.suspect_pages and right-click on the Edit Top 200 Rows.
  4. In the end, from the query window just edit, delete or update the desired rows.

Monitoring the Fixed Suspect Pages

So far we have discussed how to Monitor SQL Database suspect pages. After monitoring the suspect pages, it is also required to monitor the logs which state that the suspect pages have been fixed in one or another way. Especially in that case  When you are using the Database Mirroring in Enterprise Edition or Availability Groups. This is because both these a having MS Automatic Page Repair, that permits suspect pages to recover from its mirror-image of the non-corrupt copy.

So it’s very important to monitor the fixed suspect pages as to know how many suspect pages are fixed.

Conclusion

In this blog, we have discussed How to fix and monitor SQL database suspect pages issue. To overcome or to fix these suspect pages problems use the upper-mentioned methods. These methods can lead you to solve the suspect pages issue. Moreover, for the database corruption issue, it is good to use an automated tool.