Tabla de contenido
    Reparación de bases de datos SQL

    Reparación de un archivo MDF dañado de una base de datos SQL Server


    Tabla de contenido

      Resumen: Este blog describe las posibles razones de la corrupción del archivo MDF de la base de datos de SQL Server. También describe el proceso manual de reparación de un archivo MDF de base de datos de SQL Server dañado, los desafíos asociados con el proceso manual y la mejor alternativa para superar estos desafíos.

      MDF es el archivo de datos principal de la base de datos de SQL Server donde se almacenan todos los datos, incluidos componentes como índices, índices XML, vistas, tablas, disparadores y procedimientos almacenados. También se denomina archivo de base de datos principal o maestro de SQL Server. Cada base de datos SQL Server contiene al menos un archivo MDF.

      El archivo MDF puede describirse como el elemento principal para la gestión de la base de datos SQL.

      Varias razones conducen a la corrupción de su archivo de base de datos SQL Server (.mdf). Cuando esto ocurre, la base de datos se vuelve inaccesible y puede provocar una posible pérdida de datos si el archivo no se repara a tiempo.

      Antes de hablar de las distintas soluciones para reparar un archivo MDF, echemos un vistazo a algunas de las razones más comunes que pueden provocar la corrupción de un archivo de base de datos SQL.

      Solución rápida: Si no quiere arriesgarse a la pérdida de datos, utilice Stellar Repair for MS SQL para reparar el archivo MDF dañado y recuperar todos los objetos sin dañar la base de datos. El software es compatible con MS SQL Server 2019, 2017, 2016, 2014, 2012, 2008, 2008 R2 y versiones anteriores.
      Descarga gratuita para Windows

      Posibles causas de daños en el archivo MDF

      A continuación se indican algunas razones comunes que pueden conducir a un archivo MDF dañado en SQL Server:

      • Corte repentino de energía
      • Errores en el propio servidor
      • Sistema operativo defectuoso
      • Apagado inesperado (brusco) del sistema
      • Problemas de hardware, brotes de virus, etc.
      • Archivo guardado en un dispositivo de almacenamiento externo dañado

      ¿Cómo reparar archivos MDF?

      Microsoft SQL Server proporciona un comando de consola de base de datos incorporado CHECKDB (DBCC CHECKDB) para comprobar la integridad física y lógica de los objetos db realizando las siguientes operaciones en secuencia:

      • Ejecute el comando DBCC CHECKALLOC en la base de datos.
      • Ejecute el comando DBCC CHECKCATALOG en la base de datos.
      • Ejecute DBCC CHECKTABLE para cada vista y tabla de la base de datos.
      • Autentificación del contenido de cada vista indexada disponible en la base de datos.
      • Autenticación de la constancia a nivel de enlace entre los metadatos de la tabla, los directorios del sistema de archivos y los archivos cuando se almacenan datos VARBINARY (max) con FILESTREAM en el sistema de archivos.
      • Autenticación de los datos del Service Broker en la base de datos.
      Nota: Consulte la descripción de los comandos DBCC anteriores para obtener más información.

      DBCC CHECKDB comprueba la coherencia de las páginas db y otras comprobaciones estructurales. A continuación, informa de cualquier error.

      Si DBCC CHECKDB informa de errores de consistencia en la base de datos, intente restaurar la base de datos a partir de una copia de seguridad buena conocida. Sin embargo, si la copia de seguridad no está disponible o no es la más reciente, CHECKDB ofrece varias opciones de reparación para reparar un archivo MDF dañado en SQL Server.

      Lea esto: Reparación de bases de datos SQL con el comando DBCC CHECKDB

      Las opciones de reparación son las siguientes:

      • REPAIR_FAST – La sintaxis se mantiene sólo por compatibilidad con versiones anteriores; no ayuda a realizar acciones de reparación. La sintaxis para esta opción de reparación es:

      DBCC CHECKDB (‘Nombre-DB’, REPAIR_FAST)

      • REPAIR_REBUILD – Esta opción de reparación realiza una operación de reparación sin riesgo de pérdida de datos. Esto le permite realizar reparaciones rápidas, como la reparación de filas perdidas en índices no agrupados, e incluso reparaciones que requieren mucho tiempo, como la reconstrucción de índices. La sintaxis es:

      DBCC CHECKDB (‘Nombre-DB’, REPAIR_REBUILD)

      Nota: Esta función (REPAIR_REBUILD) no corrige errores que contengan datos FILESTREAM.
      • REPAIR_ALLOW_DATA_LOSS – Microsoft recomienda utilizar esta opción de reparación como último recurso para reparar todos los errores. Esto se debe a que aunque la opción repare errores como la liberación de una página o fila, etc., puede provocar la pérdida de datos. La sintaxis es:

      DBCC CHECKDB (‘Nombre de BD’, REPAIR_ALLOW_DATA_LOSS)

      Nota: Como alternativa a DBCC CHECKDB, utilice la opción Repair_Allow_Data_Loss para reparar el archivo MDF dañado sin pérdida de datos.

      Qué tener en cuenta al utilizar las opciones de reparación de DBCC CHECKDB

      Cuando utilice las opciones de reparación DBCC CHECKDB, preste atención a los siguientes requisitos:

      1. El primer requisito, y el más importante, es que la base de datos correspondiente esté en modo de usuario único para poder ejecutar uno de los tres comandos de reparación. Si un usuario no pone la base de datos en modo de usuario único, aparecerá el siguiente mensaje de error:

      No se procesa la instrucción de reparación. La base de datos debe estar en modo de usuario único.

      Ejecución de DBCC completada. Si DBCC ha emitido mensajes de error, póngase en contacto con el administrador del sistema“.

      Puede poner la base de datos SQL en modo de usuario único con el siguiente comando:

      ALTER DATABASE Nombre de la base de datos SET SINGLE_USER CON ROLLBACK INMEDIATO

      1. En segundo lugar, debe utilizar correctamente la sintaxis para ejecutar los comandos de reparación DBCC CHECKDB. Sólo entonces se corregirán las discrepancias y obtendrá un archivo de base de datos sano.
      2. Las instrucciones de reparación DBCC no son válidas para las tablas optimizadas para memoria. En estos casos, es decir, cuando se producen problemas de integridad en una tabla optimizada para memoria, deberá restaurar la copia de seguridad para acceder a los datos del archivo db, siempre que el archivo de copia de seguridad no esté dañado.

      ¡La herramienta de reparación DBCC CHECKDB ha fallado! ¿Y ahora qué?

      Si el DBCC CHECKDB incorporado no puede reparar el archivo SQL db, puede ejecutar a continuación un software de reparación de SQL especializado como Stellar Repair for MS SQL. El software le ayudará a reparar el archivo MDF y extraer los datos almacenados en él sin tener que invertir mucho tiempo y esfuerzo en escribir códigos complejos.

      Este software de reparación de SQL ayuda a comprobar la base de datos en busca de entradas incorrectas, corrige los patrones de bits y lleva la base de datos a un estado coherente.

      Descarga gratuita para Windows

      Características principales del software Stellar Repair for MS SQL

      • Repara archivos MDF y NDF dañados
      • Restaura todos los componentes de la base de datos, como tablas, claves, disparadores, procedimientos almacenados, etc.
      • Soporta la recuperación de registros borrados de la base de datos SQL Server
      • Muestra una vista previa de los objetos de base de datos recuperables
      • Ofrece varias opciones para guardar los archivos DB SQL reparados en formatos MS SQL, XLS, CSV y HTML.

      Conclusión

      Cuando un archivo MDF se corrompe, la única preocupación de los administradores de sistemas o de bases de datos (DBA) es garantizar que se pueda acceder a la base de datos y que todos los datos se restauren a su estado original e intacto.  

      Puede restaurar fácilmente el archivo de base de datos desde la última copia de seguridad, pero si ésta no está disponible o está dañada, ejecutar DBCC CHECKDB con las opciones de reparación puede ayudarle. Si ninguna de las opciones de reparación le funciona o no quiere arriesgarse a perder datos debido a la opción REPAIR_ALLOW_Data_LOSS, utilizar el software Stellar Repair for MS SQL es la mejor forma de reparar un archivo MDF de base de datos de SQL Server dañado. Puede ayudar a reparar archivos de bases de datos (.mdf y .ndf) cuando falla la reparación DBCC CHECKDB.

      Was this article helpful?

      No NO

      Sobre el autor

      Himanshu Shakya

      Himanshu is a Tech Enthusiast and Blogger at Stellar, with expertise in data recovery solutions and a keen interest in emerging technologies. Fluent in Japanese, he brings a diverse skill set to his role, contributing to global tech conversations. Outside of work, Himanshu enjoys playing chess, sharpening his strategic thinking and problem-solving skills in his spare time.

      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