Możesz spróbować obejść ten problem. W skrócie:
- Utwórz fikcyjną bazę danych o tej samej nazwie (może być konieczne najpierw usunięcie prawdziwej bazy danych, zapisanie oryginalnych plików lub zmiana nazwy).
- Wyłącz manekina z linii (odłącz i (ustaw offline lub zatrzymaj usługę SQL)).
- Usuń fałszywe pliki, zastąp je prawdziwymi plikami DB.
- Spróbuj ponownie dołączyć DB
Edytuj
Jak w komentarzu OP, możesz również odbudować dziennik (w przypadku utraty transakcji)
-
ALTER DATABASE [MyDatabase ] REBUILD LOG ON (NAME=’MyDatabaseLog’,FILENAME=’D:\Microsoft SQL Server\YourDataPath\Data\Logfile.ldf’)
i umieść bazę danych w dzienniku wielu użytkowników (zdjęcie bazy danych może wymagać przełączenia jej w tryb jednorazowego użytku)
-
ALTER DATABASE [nomdb] SET MULTI_USER
Wszystkie szczegóły dotyczące gore można znaleźć w Artykuł Paula Randala
(Uwaga w tym artykule autor używa TRYBU AWARYJNEGO do (próby) naprawy dziennika transakcji)
Użyłem go już z powodzeniem, ale w zależności od stopnia uszkodzenia lub innych szczegółów może to być zadanie niewykonalne. Rozważ przywrócenie kopii zapasowej.
Zwróć uwagę, że te akrobacje są w porządku na serwerze programistycznym, ale naprawdę musisz zaplanować (i przećwiczyć) odzyskiwanie po awarii na serwerze produkcyjnym.