J'essaie de mettre en place une base de données à des fins de développement sur SQL Server Developer Edition 12.0.2000.8 local de mon PC. J'ai une sauvegarde complète de la base de données et des fichiers de sauvegarde séparés du journal des transactions disponibles qui m'ont été envoyés sur le réseau.
Lorsque j'essaie de restaurer à partir d'une sauvegarde complète, après un certain temps (~ 1 heure peut-être, la base de données fait ~ 270 Go), j'obtiens une erreur:
System.Data.SqlClient.SqlError: Une erreur s'est produite lors du traitement du journal de la base de données 'nom de la base de données'. Si possible, restaurez à partir de la sauvegarde. Si aucune sauvegarde n'est disponible, il peut être nécessaire de reconstruire le journal. (Microsoft.SqlServer.SmoExtended)
Après cela, la base de données est dans l'état «Restauration ..».
Je voulais lancer quelque chose comme (obtenu à partir de cette question)
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;
contre elle, mais naturellement je ne peux pas car la base de données est dans l'état "Restauration ..".
Comment puis-je faire fonctionner la base de données? La cohérence transactionnelle n'a pas d'importance pour moi.
Le script de restauration généré automatiquement 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
Le résultat de la requête suggérée par @Craig Efrein
Le journal ne peut pas être reconstruit car des transactions / utilisateurs étaient ouverts lors de la fermeture de la base de données, aucun point de contrôle ne s'est produit dans la base de données ou la base de données était en lecture seule. Cette erreur peut se produire si le fichier journal des transactions a été supprimé ou perdu manuellement en raison d'une défaillance matérielle ou environnementale.