Tabla de contenido
    SQL Database Repair

    ¿Cómo recuperar una base de datos MS SQL del modo sospechoso?


    Tabla de contenido

      Resumen: Lea este post para encontrar soluciones para recuperar la base de datos MS SQL marcado como sospechoso. Describe instrucciones paso a paso para solucionar el problema de "base de datos sospechosa de SQL Server" mediante la ejecución de comandos Transact-SQL (T-SQL) en SQL Server Management Studio (SSMS). Además, proporciona una solución alternativa para restaurar la base de datos mediante una herramienta de recuperación de SQL.

      Cuando la base de datos SQL entra en modo sospechoso, se vuelve inaccesible. En tal situación, no podrá conectarse a la base de datos ni recuperarla durante el arranque del servidor.

      Figura 1: Base de datos en modo sospechoso

      Echa un vistazo a la infografía a continuación para soluciones rápidas para recuperar la base de datos de modo sospechoso en SQL Server 2008, y versiones superiores.

      ¿Cuándo pasa la base de datos SQL al modo sospechoso?

      Cuando SQL Server sospecha que el grupo de archivos primario de la base de datos está dañado o si falta el archivo de la base de datos, el estado de la base de datos se establece en “Sospechoso”.

      Además, hay una amplia gama de errores que podrían resultar en la base de datos SQL en modo sospechoso. Algunos de ellos se enumeran a continuación:

      • El sistema no consigue abrir el dispositivo donde residen los datos o el archivo de registro del servidor SQL.
      • El servidor SQL se bloquea o se reinicia en medio de una transacción, lo que da lugar a un archivo de registro de transacciones corrupto o inaccesible.
      • SQL Server intenta abrir una base de datos, y el archivo perteneciente a esa base de datos ya está abierto por el software antivirus instalado en su sistema.
      • La base de datos se cierra de forma anormal.
      • Falta de espacio en disco.
      • SQL no puede completar una operación de rollback o roll forward.
      • Los archivos de la base de datos son retenidos por el sistema operativo, software de copia de seguridad de terceros, etc.

      ¿Cómo sacar la base de datos SQL del modo sospechoso?

      NOTA: Puede intentar restaurar la base de datos en modo sospechoso a partir de una buena copia de seguridad conocida. Si la copia de seguridad no está disponible, proceda con los siguientes pasos.

      Siga los pasos en la secuencia indicada a continuación para recuperar la base de datos MS SQL desde el modo sospechoso:

      Paso 1: Abra SSMS y conéctese a la base de datos.

      Figura 2: Conectarse a la base de datos

      Paso 2: Seleccione la opción Nueva consulta.

      Figura 3: Seleccionar nueva consulta

      Paso 3: En la ventana del editor de consultas, introduzca el siguiente código para desactivar el indicador de sospechoso en la base de datos y ponerlo en EMERGENCIA:

      EXEC sp_resetstatus ‘nombre_db’;

      ALTER DATABASE db_name SET EMERGENCY

      Figura 4: Configurar la base de datos en modo de emergencia

      NOTA: Si no puede configurar la base de datos en modo de emergencia, pase a la siguiente solución.

      Paso 4: Es posible que una base de datos sospechosa no esté dañada. Puede determinar si la base de datos está dañada o no ejecutando el siguiente comando DBCC CHECKDB.

      DBCC CHECKDB (‘nombre_base_de_datos’)

      Esta sentencia informará de cualquier error de consistencia (si se encuentra) en la base de datos y recomendará ejecutar la opción de nivel mínimo de reparación para arreglar la corrupción.

      Antes de iniciar el proceso de reparación, debe poner la base de datos en “Modo de usuario único”. Esto impedirá que otros usuarios realicen cambios en la base de datos durante el proceso de reparación.

      Figura 5: Comprobar la coherencia de la base de datos

      Paso 5: Ahora, llevemos la base de datos al modo de Usuario Único y retrocedamos las transacciones anteriores ejecutando el siguiente comando:

      ALTER DATABASE database_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE

      Figura 6: Configurar la base de datos en modo de usuario único

      Paso 6: Tome una copia de seguridad completa de los archivos dañados para evitar posibilidades de pérdida de datos.

      Paso 7: Después de poner la db en modo SINGLE USER, intente arreglar los errores de consistencia usando la opción REPAIR_REBUILD de DBCC CHECKDB. Esta opción puede reparar rápidamente filas perdidas en índices no agrupados. Además, puede utilizarla para operaciones de reparación que requieren más tiempo, como la reconstrucción de un índice.

      DBCC CHECKDB (‘nombre_base_de_datos’, REPAIR_REBUILD)

      Sin embargo, si se sugiere REPAIR_ALLOW_DATA_LOSS como nivel mínimo de reparación, ejecute DBCC CHECKDB con la opción de reparación sugerida. La sintaxis es la siguiente:

      DBCC CHECKDB (‘nombre_base_de_datos’, REPAIR_ALLOW_DATA_LOSS)

      Figura 7: Reparar base de datos con DBCC CHECKDB

      Paso 8: Poner la base de datos en modo Multi-Usuario:

      ALTER DATABASE database_name SET MULTI_USER

      Figura 8: Configurar la base de datos en modo multiusuario

      ALTER DATABASE database_name SET MULTI_USER

      Paso 9: Actualice el servidor de base de datos.

      Después de completar estos pasos, debería poder conectarse a la base de datos. En caso de pérdida de datos, tendrás la copia de seguridad de la base de datos para restaurarla (paso 6).

      ¿Y si esta solución no funciona?

      Si el archivo de base de datos de su servidor se ha dañado gravemente, es posible que los pasos mencionados no consigan revivir la base de datos. En este punto, intente restaurar la base de datos utilizando Stellar Repair for MS SQL.

      El software puede reparar errores comunes de corrupción de bases de datos SQL que se producen debido a razones tales como la base de datos en modo sospechoso y varios otros. El software utiliza algoritmos avanzados para reparar y restaurar SQL db de modo sospechoso a estado normal (en línea).

      ¿Cómo recuperar una base de datos SQL del modo sospechoso con la herramienta Stellar SQL Recovery?

      NOTA: Asegúrese de cerrar la instancia del servidor antes de ejecutar el software Stellar Repair for MS SQL.

      Paso 1: Descargue, instale y ejecute el software Stellar Repair for MS SQL.

      Paso 2: En la ventana Seleccionar base de datos, elija Examinar o Buscar para seleccionar el archivo de base de datos SQL (.mdf) de la base de datos sospechosa.

      Figura 9: Seleccionar archivo de base de datos

      Paso 3: Una vez seleccionado el archivo, pulse Reparar.

      Figura 10- Reparar el archivo seleccionado

      NOTA: Asegúrate de desmarcar la casilla “Incluir registros eliminados” si no quieres que se recuperen los registros eliminados.

      Paso 4: Vista previa del archivo MDF reparado en busca de objetos de base de datos SQL Server recuperables.

      Figura 11: Ventana de vista previa

      Paso 5: Haga clic en Guardar en el menú Archivo para guardar el archivo reparado.

      Figura 12: Menú Archivo

      Paso 6: Desde la ventana Guardar Base de Datos, realice lo siguiente:

      • Seleccione MDF en Guardar como.
      • Guarde el archivo reparado en Nueva base de datos o Base de datos activa.
      • Rellene los datos en Conectarse al servidor.
      Figura 13: Ventana Guardar base de datos

      Paso 7: Haga clic en Guardar.

      Abra SSMS y adjunte la base de datos (que contiene el archivo MDF reparado). Podrá acceder a la base de datos.

      Funciones adicionales del programa

      • Repara archivos MDF y NDF corruptos.
      • Recupera tablas, triggers, claves, índices, procedimientos almacenados, valores por defecto, reglas, esquemas, etc.
      • Compatible con MS SQL 2019, 2017, 2016, 2014, 2012, 2008 R2 y versiones inferiores.
      • Proporciona múltiples opciones para guardar la base de datos reparada, incluyendo MS SQL (MDF), CSV, HTML y XLS.

      El software cuenta con la confianza de los MVP de Microsoft

      El software cuenta con la confianza de los MVP de Microsoft

      Conclusión

      Este post discute metodos sobre ‘Como recuperar una base de datos MS SQL desde modo sospechoso’. Lo mejor es restaurar la base de datos desde una copia de seguridad en buen estado. Si usted no tiene copia de seguridad, utilice el modo de emergencia para acceder a la base de datos y repararla. Sin embargo, es posible que no pueda revertir las transacciones que estaban activas cuando la base de datos entró en modo sospechoso. Además, utilizar la opción REPAIR_ALLOW_DATA_LOSS como nivel mínimo de reparación puede provocar la pérdida de datos. Una mejor alternativa es utilizar un software especializado de reparación de bases de datos SQL que ayude a reparar y restaurar la base de datos de sospechosa a un estado normal.

      Was this article helpful?

      No NO

      Sobre el autor

      Daniel Calbimonte linkdin

      Daniel Calbimonte is a Microsoft Most Valuable Professional, Microsoft Certified Trainer, and Microsoft Certified IT Professional for SQL Server. He is an accomplished SSIS author, teacher at IT Academies and has over 10 years of experience as a QE and developer for SQL Server related software. He has worked for the government, oil companies, web sites, magazines and universities around the world. Daniel also regularly speaks at SQL Servers conferences and blogs. Read more

      Leave a comment

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

      Image Captcha
      Refresh Image Captcha

      Enter Captcha Here :

      Publicación relacionada

      POR QUÉ STELLAR® ES LÍDER MUNDIAL

      ¿Por qué elegir Stellar?

      • 0M+

        Clientes

      • 0+

        Años de excelencia

      • 0+

        Ingenieros de I+D

      • 0+

        Países

      • 0+

        SOCIOS

      • 0+

        Premios recibidos