Durante el fin de semana, un sitio web que ejecuté dejó de funcionar, registrando el siguiente error en el Visor de eventos cada vez que se realiza una solicitud al sitio web:
Id. De evento: 9001
El registro para la base de datos ' nombre de base de datos ' no está disponible. Consulte el registro de eventos para ver los mensajes de error relacionados. Resuelva cualquier error y reinicie la base de datos.
El sitio web está alojado en un servidor dedicado, por lo que puedo RDP en el servidor y hurgar. El LDF
archivo para la base de datos existe en la C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
carpeta, pero al intentar hacer cualquier trabajo con la base de datos desde Management Studio, aparece un cuadro de diálogo que informa el mismo error: 9001: el registro de la base de datos no está disponible ...
Esta es la primera vez que recibo este error, y he estado alojando este sitio (y otros) en este servidor web dedicado durante más de dos años.
Tengo entendido que este error indica un archivo de registro dañado. Pude volver a conectar el sitio web al desconectar la base de datos y luego restaurar una copia de seguridad de hace un par de días, pero mi preocupación es que este error es indicativo de un problema más siniestro, es decir, una falla del disco duro.
Envié un correo electrónico a la compañía de alojamiento web y esta fue su respuesta:
No parece haber ninguna otra indicación de la causa en el Registro de eventos, por lo que es posible que el registro esté dañado. Actualmente, los recursos de la memoria están al 87%, lo que también puede tener un impacto, pero es poco probable.
¿Puede el registro simplemente "corromperse"?
Mi pregunta: ¿Cuáles son los siguientes pasos que debo seguir para diagnosticar este problema? ¿Cómo puedo determinar si esto es, de hecho, un problema de hardware? Y si es así, ¿hay alguna opción más allá de reemplazar el disco?
Gracias
fuente
Pude resolver esto desconectando la base de datos en Management Studio e inmediatamente volviéndola a conectar.
dbcc checkdb
había arrojado errores que se resolvieron después de hacer esto. No puedo decir por qué esto funcionó sólo que se hizo el trabajo.fuente
También he tenido este problema recientemente y después de una gran cantidad de investigaciones, parece ser común cuando una base de datos está configurada en AUTO CLOSE. Configuré todas las bases de datos en AUTO CLOSE = FALSE. Esto comenzó con una base de datos, luego pasó a dos y la siguiente estaba en todas ellas. Simplemente reinicié el Servicio de instancias de SQL Server en lugar de restaurar las bases de datos. Otra forma de solucionar el síntoma es desconectar la base de datos problemática y volverla a conectar.
fuente
MS SQL desconectará los registros de una base de datos afectada para evitar daños en la base de datos. Es por eso que obtienes el error 9001.
Cuando desconecte la base de datos afectada / en línea, MS SQL habilitará los registros de la base de datos afectada hasta que vuelva a ocurrir el error.
Otra forma de resolver esto es cambiar la opción Auto_Close a OFF
http://sqlmag.com/blog/worst-practice-allowing-autoclose-sql-server-databases
fuente
Voy a adivinar / esperar que tengas una redada para el disco de tu servidor sql. Si sospecha que hay problemas de hardware, lo primero que haría sería ejecutar sus herramientas de diagnóstico / mantenimiento de incursiones.
La segunda cosa (probablemente simultáneamente si puede) es ejecutar dbcc checkdb en la base de datos (quizás también las bases de datos de su sistema).
fuente
Ok, primer paso, haga una copia de seguridad de su registro y sus archivos mdf en una unidad completamente diferente. ¡CON RAPIDEZ! (Copia de archivo)
Además, intente realizar una copia de seguridad completa de la base de datos.
A continuación, intente lo siguiente. Utilizando su base de datos actual, sepárela, si puede y luego elimine el archivo de registro, o muévalo a una ubicación completamente diferente en el disco. Luego, vuelva a adjuntar la base de datos y se mostrará en la interfaz gráfica de usuario con un archivo de registro, haga clic en eliminar (o eliminar) para que el archivo de registro no aparezca y luego haga clic en Aceptar. Básicamente adjuntarlo sin un registro, lo obligará a crear un archivo de registro para la base de datos en la ubicación predeterminada.
Házmelo saber.
fuente
Sí, yo también recibí este mismo problema, se trataba del error tempDb 9001, es decir, el registro no está disponible. Reiniciamos los servicios y todo estuvo bien.
El problema detrás de esto fue SAN o problema de almacenamiento, mientras que la operación de escritura de E / S, no pudo escribir durante más de 15 segundos.
fuente
Ayer recibí el mismo error "el registro para la base de datos '%' no está disponible. Error fatal 9001, mensaje 21. Póngase en contacto con su administrador" -
Solución alternativa: verifiqué el 'TempDB' pero no era accesible de manera similar al resto de las bases de datos del sistema. Luego, antes de ir a la opción de reparación, simplemente reinicié los servicios SQL para esa instancia y el problema se resolvió :) :)
fuente
He visto que esto sucede cuando no hay espacio en disco disponible para la expansión del registro; ¿puede verificar que haya suficiente espacio en C: \ y que sus registros se estén administrando?
Quitaría sus ldf (y mdf) del volumen de arranque si tiene la opción.
fuente