¿Cómo Arreglar el Error Fatal 823 en una Base de Datos de SQL Server?

A veces recibimos el error 823 en SQL Server y, cuando este error ocurre, es difícil estimar el nivel de gravedad, los problemas que puede causar si persiste y cuál podría ser su causa y solución. En este artículo, mostraremos las causas y la forma de resolver el error 823 en SQL Server.

¿Qué es el Error 823 en una Base de Datos de SQL Server?

Es un problema en SQL Server que puede estar relacionado con:

  1. EL sistema operativo
  2. Un problema de IO

En este artículo, hablaremos sobre el problema de IO. El mensaje de error será similar a:

Error: 823, Severity: 24, State: 2.
2010-03-06 22:41:19.55 spid58 The operating system returned error 38 (Reached the end of the file.) to SQL Server during a read at offset 0x000000a72c0000 in file ?C:\Program Files\Microsoft SQL Server\ MSSQL\DATA\db.mdf?. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

¿Qué problemas están asociados al error 823 de IO

Este problema puede estar relacionado con los siguientes problemas:

  1. Una Página Rota
  2. Un ID Incorrecto de Página
  3. Bytes Insuficientes Transferidos

¿Qué es una Página Rota?

Es una página que se ha escrito de forma incorrecta. Podríamos decir que la Detección de una Página Rota escribe un byte por cada 512 bytes en la página y permite que se detecte cuando la página no está escrita de forma apropiada en el disco, pero no dice si los datos almacenados en el disco son correctos, ya que un par de bytes podrían haberse escrito de forma incorrecta.

¿Cuál es el mensaje de error para una página rota?

El error será como este:

2015-08-05 16:51:18.90 spid17 Error: 823, Severity: 24, State: 2
2015-08-05 16:51:18.90 spid17 I/O errors (torn page) detected during read at offset 0x00000094004000 in file ?c:\Program Files\Microsoft SQL Server\MSSQL\data\tempdb.mdf?

¿Cómo detectar un Error de IO en una página rota?

Puede detectar estos errores cuando ejecuta el comando CHECKDB en su base de datos.

¿Qué es un ID Incorrecto de Página?

Es cuando el ID el encabezado de la página no es el mismo que se espera al leerlo del disco.

¿Por qué el error de bytes insuficientes transfiriéndose produce en SQL server?

Significa que la llamada a la API se invocó con éxito, pero los bytes transferidos no son los esperados.

¿Cómo resolver el error 823 de SQL Server?

El primer paso sería ejecutar el comando DBCC CHECKDB e intentar reparar la base de datos usando lo siguiente:

DBCC CHECKDB (DB_NAME, REPAIR_REBUILD); 

La base de datos debe estar en modo de usuario único. Para cambiar al modo de usuario único, puede usar el siguiente comando de T-SQL:

ALTER DATABASE DB2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 

Otra forma de hacerlo es hacer clic derecho en la base de datos en SSMS e ir a la página Options. Para restringir el acceso, seleccione SINGLE USER:

Establezca la base de datos en modo de usuario único.

Ejecute ?DBCC CHECKDB? nuevamente para verificar que la base de datos fue reparada:

  1. Si el problema persiste, puede ser un problema de hardware, es posible que deba reparar su disco duro. Contacte al equipo de mantenimiento encargado del hardware. Compruebe también si hay problemas de fragmentación en el disco duro.
  2. También puede restaurar su base de datos con una copia de seguridad. Una vez que la base de datos haya sido restaurada, ejecute CHECKDB para verificar si se resolvió el problema.
  3. Si tiene un error de Página Rota, puede usar el comando CHECKSUM para detectar si la página contiene errores.

Otra opción sería descargar Stellar Repair for MS SQL. Este programa se puede bajar de forma gratuita presionando el botón DESCARGAR GRATIS.

Este software reparará el archivo .MDF. Primero deberá detener el Servicio de SQL Server. Se recomienda detener el servicio utilizando SQL Server Management Studio (SSMS) o el Administrador de configuración de SQL Server.

Detenga el Servicio de SQL Server

Si no sabe dónde están sus archivos de datos, puede usar los siguientes comandos de T-SQL (el servicio SQL Server deberá iniciarse):

SELECT name, physical_name AS current_file_location FROM sys. master_files 

Una vez que se especifique el archivo .MDF, presione el botón Repair:

Nota: Si tiene uno o varios archivos de datos secundarios (archivos .NDF) asociados con su base de datos, coloque todos estos archivos en la ubicación del archivo MDF. Una vez que todo haya sido finalizado, puede reiniciar el servicio de SQL Server y volver a ejecutar el comando CHECKDB.

La herramienta de reparación de SQL reparará los archivos .MDF y .NDF y ya no verá el error 823 de SQL Server.

Conclusión

En este artículo, hemos aprendido varias causas que producen el error 823 en SQL Server y cómo resolver este problema. Este problema puede ser causado por errores en hardware (errores de disco, fallas de energía) o en el sistema. También hemos mostrado cómo resolverlo con un respaldo, usando CHECKDB y finalmente, usando Stellar Repair for MS SQL.

Stellar Repair for MS SQL es una herramienta simple para reparar SQL. Si tiene alguna consulta, no dude en escribir sus preguntas y comentarios.

Related Post