Comprobar el último CHECKDB en SQL Server

Hola a todos, hoy os vamos a enseñar cómo comprobar el último CHECKDB en SQL Server. También os contaremos por qué es importante este proceso. Comencemos.

¿Qué es un CHECKDB?

En primer lugar debemos saber qué es un CHECKDB. Realmente cuando nos referimos a un CHECKDB, estamos hablando del comando interno de SQL Server DBCC CHECKDB. Por ejemplo:

DBCC CHECKDB WITH NO_INFOMSGS;    
GO  

Este comando, lo que hace es chequear la integridad de los datos y las tablas. Dependiendo de los comandos que le indiquemos, intentará repararlos, o nos mostrará información de qué objetos de la base de datos tienen problemas.

El tener la base de datos corrupta, puede dar lugar a una pérdida de datos y la imposibilidad de restaurar un backup de la misma. De ahí la importancia de realizar un CHECKDB periódico. Por ejemplo, cada fin de semana.

¿Cómo comprobar el último CHECKDB?

Una vez que ya sabemos qué es un CHECKDB, podemos comprobar cuando se ha realizado el último. Para estas pruebas hemos montando un nuevo entorno de SQL Server 2019 y hemos restaurado la base de datos de pruebas AdventureWorks2019. A esta base de datos nunca se le ha realizado un CHECKDB ya que es un nuevo entorno y base de datos.

Al ser una versión superior a SQL Server 2016, utilizaremos el siguiente comando:

select DATABASEPROPERTYEX ('AdventureWorks2019','LastGoodCheckDbTime') as LastCheckDB_OK

El resultado sería el siguiente, ya que nunca se ha hecho un checkdb de esta base de datos:

Comprobar el último CHECKDB

DATABASEPROPERTYEX está disponible desde SQL Server 2016 y nos proporciona información sobre la base de datos. En este caso hemos usado para devolver el último CheckDB correcto pero nos puede dar más información.

Si ejecutamos el siguiente comando:

use AdventureWorks2019
go
DBCC CHECKDB WITH NO_INFOMSGS;    
GO  

Y repetimos la consulta anterior, podremos comprobar que ya se ha realizado el CheckDB:

Comprobar el último CHECKDB de todas las bases de datos

Si lo que queremos es ver cuándo se ha realizado un CHECKDB en todas la instancia podemos usar la siguiente consulta:

select name,DATABASEPROPERTYEX (name,'LastGoodCheckDbTime') as LastCheckDB_OK,DATABASEPROPERTYEX (name,'Recovery')
from sys.databases

Como se aprecia en la captura, también se ve el modelo de recuperación de cada una gracias a » DATABASEPROPERTYEX (name,’Recovery’) » .También se aprecia que solo se ha hecho checkdb en AdventureWorks2019:

Comprobar el último CHECKDB

Si tras ejecutar estos pasos, compruebas que no se ha hecho nunca un CHECKDB o este fue hace mucho tiempo. Consúltanos sin compromiso en nuestra página de contacto. Podremos revisar tu entorno e implantar un sistema de mantenimiento para que en caso de haber bases de datos corruptas, poder actuar a tiempo. Consulta nuestro servicio de soporte SQL server y delega el mantenimiento de tus bases de datos.

Esperamos haberte ayudado. Nos vemos en próximas entradas. Te esperamos en nuestra newsletter mensual. Donde podrás estar al día de todas nuestras publicaciones con un solo email al mes.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Fuente: https://sicuel.es/2020/01/09/comprueba-la-ultima-fecha-de-tus-checkdb/#more-709