Recovery Pending w bazie danych SQL Server

Jeżeli w SQL Server Management Studio twoja baza danych SQL Server ma przy nazwie dopisek „(Recovery Pending)” i nie za bardzo daje się używać, jest szansa przywrócić jej sprawność poprzez:

ALTER DATABASE [My fantastic database] SET OFFLINE WITH ROLLBACK IMMEDIATE
ALTER DATABASE [My fantastic database] SET ONLINE WITH ROLLBACK IMMEDIATE

NB. Może przesąd, ale w rzeczywistości nie polecam użycia spacji w nazwach baz danych. Tutaj użyłem takiej nazwy jako przykładu, także po to, żeby pokazać jak nawiasami kwadratowymi poinformować SQL Server, że nasza nazwa ma spacje w środku.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

1 thought on “Recovery Pending w bazie danych SQL Server”

  1. „(Recovery Pending)” Pojawiło się u mnie po tym, jak usunąłem .ldf.

    Pomogło mi to:

    ALTER DATABASE [baza] SET EMERGENCY;
    GO
    ALTER DATABASE [baza] set single_user
    GO
    DBCC CHECKDB ([baza], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
    GO
    ALTER DATABASE [baza] set multi_user
    GO

    Źródło: https://www.stellarinfo.com/blog/fix-sql-database-recovery-pending-state-issue/

    PS. Jeśli łączymy się do pliku (do bazy) za pomocą LocalDB, to nazwa bazy ustawiana jest taka sama jak ścieżka do pliku. Jeśli w ścieżce jest spacja, to nazwa bazy będzie ze spacją.