Estoy tratando de configurar una base de datos para fines de desarrollo en el SQL Server Developer Edition 12.0.2000.8 local de mi PC. Tengo una copia de seguridad completa de la base de datos y archivos de copia de seguridad separados solo del registro de transacciones disponibles que me enviaron a través de la red.
Cuando intento restaurar desde una copia de seguridad completa, después de un tiempo (~ 1 hora tal vez, la base de datos tiene un tamaño de ~ 270 GB), aparece un error:
System.Data.SqlClient.SqlError: se produjo un error al procesar el registro de la base de datos 'nombre de base de datos'. Si es posible, restaure desde la copia de seguridad. Si no hay una copia de seguridad disponible, puede ser necesario reconstruir el registro. (Microsoft.SqlServer.SmoExtended)
Después de esto, la base de datos está en estado 'Restaurando ...'.
Quería ejecutar algo como (lo obtuve de esta pregunta)
ALTER DATABASE recovery_test_2 SET EMERGENCY;
ALTER DATABASE recovery_test_2 SET SINGLE_USER;
DBCC CHECKDB (recovery_test_2, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;
en su contra, pero, naturalmente, no puedo, ya que la base de datos está en el estado "Restaurando ...". Reiniciar el proceso de restauración lleva al mismo mensaje de error, dejarlo y restaurar nuevamente no ayudó.
¿Cómo hago para que db funcione? La consistencia transaccional no me importa.
El script de restauración generado automáticamente por SSMS:
USE [master]
RESTORE DATABASE [database_name] FROM DISK = N'D:\database_name.bak' WITH FILE = 1,
MOVE N'database_name' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name.mdf',
MOVE N'database_name_index' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name_index.ndf',
MOVE N'database_name_log' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name_log.ldf',
NOUNLOAD,
STATS = 5
GO
El resultado de la consulta sugerida por @Craig Efrein
El registro no se puede reconstruir porque había transacciones / usuarios abiertos cuando se cerró la base de datos, no se produjo ningún punto de control en la base de datos o la base de datos era de solo lectura. Este error podría ocurrir si el archivo de registro de transacciones se eliminó manualmente o se perdió debido a una falla de hardware o entorno.