2009-09-23 25 views
11

Restauraba una base de datos de 35 Gb en mi máquina de desarrollo ayer y todo iba bien hasta esta mañana cuando mi aplicación cliente no se pudo conectar. Entonces abrí SQL Management Studio para encontrar la base de datos 'In Recovery'.Base de datos SQL Server 2005 'En recuperación'

No sé una gran cantidad de esto aparte de lo que suele ser algo relacionado con las transacciones no confirmadas. Ahora, como sé que no son transacciones no confirmadas, debe ser algo más. Primero, me gustaría saber en qué condiciones esto puede suceder. En segundo lugar, mientras esto sucede no puedo trabajar, por lo que si hay alguna forma de detener la recuperación, acelerarla o, al menos, encontrar aproximadamente cuánto tiempo va a ayudar, podría ayudar.

+0

En mi experiencia vi lo mismo cuando el servidor se bloqueó (por error del SO o por interrupción de energía) para una gran base de datos (aproximadamente 100 GB). ¿Encontraste en el visor de eventos algún error o advertencia? La única manera de detener la recuperación es cerrar el servidor sql, pero cuando el servidor se reinicia ... ¡la recuperación comienza de nuevo! –

Respuesta

14

No apague SQL mientras la recuperación está en progreso. Deja que termine Verifica los registros de errores. Si no termina, restaure desde la copia de seguridad.

+1

Echa un vistazo a esto también: http://www.sqlskills.com/BLOGS/PAUL/category/Bad-Advice.aspx –

+0

Bueno, no es realmente una respuesta, pero es lo mejor que tengo parece. Lo extraño es que hice eso y ejecuté 'dbcc checkdb' inmediatamente después y no había absolutamente nada malo. No ha pasado desde cualquiera de los dos. Quién sabe qué pasó! – Stimul8d

+2

Podría haber sido cualquier cosa, entonces. Por lo general, la recuperación ocurre cuando el servicio MSSQL no finaliza correctamente y las bases de datos no están marcadas, por lo que todos los registros se vuelven a reproducir. Si tuvo una transacción particularmente larga en la etapa en que el servidor murió, tendría que volver a procesarla. –

11

Puede averiguar cuánto tiempo tardará en buscar en el visor de eventos. En la sección de Aplicación en los Registros de Windows, debe recibir mensajes de información de MSSQLSERVER con EventID 3450 que le informa de qué se trata. Algo así como:

de recuperación de base de datos 'XYZ' es (siendo aproximadamente 123456 segundos) 10% completado, etc, etc

Me temo que no sé cómo detenerlo (todavía).

+1

No es una respuesta completa pero sí muy útil. Gracias :-) – Stimul8d

+3

también, puede ejecutar este script para ver el estado de recuperación: http://timlaqua.com/2009/09/determining-how-long-a-database-will-be-in-recovery-sql-server- 2008 / – nanonerd

Cuestiones relacionadas