Ich versuche, eine Datenbank für Entwicklungszwecke auf dem lokalen SQL Server Developer Edition 12.0.2000.8 meines PCs einzurichten. Ich habe eine vollständige Datenbanksicherung und separate Nur-Transaktionsprotokoll-Sicherungsdateien, die über das Netzwerk an mich gesendet wurden.
Beim Versuch, eine vollständige Sicherung wiederherzustellen, wird nach einiger Zeit (etwa 1 Stunde, die Datenbank hat eine Größe von etwa 270 GB) eine Fehlermeldung angezeigt:
System.Data.SqlClient.SqlError: Beim Verarbeiten des Protokolls für die Datenbank 'Datenbankname' ist ein Fehler aufgetreten. Wenn möglich, stellen Sie sie von der Sicherung wieder her. Wenn keine Sicherung verfügbar ist, muss das Protokoll möglicherweise neu erstellt werden. (Microsoft.SqlServer.SmoExtended)
Danach befindet sich die Datenbank im Status 'Restoring ..'.
Ich wollte so etwas wie laufen (habe es von dieser Frage)
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;
dagegen, aber ich kann natürlich nicht, da sich die Datenbank im Status "Wiederherstellen ..." befindet. Ein Neustart des Wiederherstellungsprozesses führt zur gleichen Fehlermeldung, und das Löschen und erneute Wiederherstellen hat auch nicht geholfen.
Wie bringe ich die Datenbank zum Laufen? Transaktionskonsistenz ist mir egal.
Das automatisch generierte SSMS-Wiederherstellungsskript:
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
Das Ergebnis der von @Craig Efrein vorgeschlagenen Abfrage
Das Protokoll kann nicht neu erstellt werden, da beim Herunterfahren der Datenbank Transaktionen / Benutzer geöffnet waren, kein Prüfpunkt für die Datenbank aufgetreten ist oder die Datenbank schreibgeschützt war. Dieser Fehler kann auftreten, wenn die Transaktionsprotokolldatei aufgrund eines Hardware- oder Umgebungsfehlers manuell gelöscht wurde oder verloren ging.