Cómo recuperar la base de datos del modo sospechoso

In muchas ocasiones, la base de datos de SQL Server entra en modo sospechoso (suspect). Si su base de datos entra a este modo, es una muy mala noticia. Significa generalmente que la base de datos está dañada y que hay que tratar de recuperar los datos de alguna manera.

Pero, gracias a Dios usted entró al lugar correcto para solucionar este problema. En el presente artículo, veremos diferentes alternativas para solucionar este tipo de problema.

Requerimientos

Este artículo es válido para cualquier versión de SQL Server. Los requerimientos incluyen lo siguiente:

  1. SQL Server instalado.
  2. SSMS instalado.

Manos a la obra

Empecemos a ver como solucionar esto. La principal manera de solucionar esto es ponerlo en modo de emergencia.

El modo de emergencia de SQL Server, permite solucionar problemas cuando la base de datos está muy dañada.

Cuando se usa este modo, es posible leer los datos que están en modo sospechoso. Para poner en modo de emergencia, vamos a seleccionar propiedades de la base de datos en SSMS:

Una vez que se lo tiene en el modo de emergencia, el resto es tratar de reparar la base de datos con el comando DBCC. El comando DBCC permite reparar la base de datos y se lo usa cuando la base de datos está en modo sospechoso. Se debe entonces primero tener la base de datos en modo de emergencia y luego ejecutar la línea de comandos DBCC.

Luego, procederemos a poner la base de datos en modo de usuario único. Para ponerlo en modo de usuario único,

El siguiente ejemplo muestra cómo ejecutar el comando DBCC para reparar la base de datos en modo sospechoso:

Otra forma de poner en modo de usuario único es en propiedades de la base de datos en SSMS:

Una vez que está en modo de usuario único. En la ventana de propiedades de bases de datos vaya a la página de opciones y seleccione la opción de usuario único:

Una vez que está en modo de usuario único, se procede a reparar la base de datos. El siguiente ejemplo muestra el código T-SQL requerido para hacerlo:

Una vez que se repara la información, se puede volver al modo multi-usuario usando la interface de usuario de SQL Server en las propiedades de bases de datos, en la página de opciones:

Es posible también poner en modo multi-usuario usando T-SQL:

Stellar Repair for MS SQL

Otra alternativa para reparar la base dañada es usar software externo. Para ello utilizaremos Stellar Repair for MS SQL. Este es un software especializado para reparar bases de datos.

Una vez instalado el software, se debe seleccionar el archivo de datos que tiene la extensión mdf:

El botón Repair se utiliza para reparar la base de datos seleccionada. Por defecto estas bases de datos están guardadas en Archivos de programas o program files en la carpeta de Microsoft SQL Server\MSQLXX.MSSQLSERVER\MSSQL\Data. Sin embargo, es posible que los archivos de datos se almacenen en otro lugar.

Para poder verificar la ubicación, abra las propiedades de su base de datos en SSMS:

En Propiedades, vaya a la página de archivos (files) y verifique donde se guarda el archivo mdf:

Es también posible buscar el archivo de datos (llamado también datafile en inglés) utilizando el botón de Search que realiza una búsqueda:

El botón repair permite restaurar la base de datos. Usted podrá previsualizar tablas, vistas, procedimientos almacenados y otros objetos de SQL Server con Stellar Repair for MS SQL:

Si selecciona una tabla, es posible previsualizar los datos:

Finalmente se tiene el botón save que permite guardar sus datos ya sea en SQL Server, HTML, Excel o formato CSV:

Conclusiones

En el presente artículo hemos mostrado como recuperar una base de datos que está en modo sospechoso. Primeramente, se lo coloca en modo de emergencia, luego se lo pone en modo de usuario único y finalmente se lo repara con el comando DBCC.

Si esto no funciona, se utiliza el software Stellar Repair for MS SQL que permite restaurar la base de datos dañada de SQL Server usando al archivo de datos con extensión mdf.

Muchas gracias por su tiempo y si tienen dudas, pueden escribir sus comentarios o preguntas.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.