RESTORE to polecenie T-SQL odtwarzające bazę danych z kopii zapasowej.
Składnia i tryby przywracania
Pełna postać polecenia to RESTORE DATABASE nazwa FROM DISK = 'D:\backup\baza.bak' WITH RECOVERY. Klauzula WITH NORECOVERY pozostawia bazę w stanie odzyskiwania, aby dołożyć kolejne pliki: kopię różnicową i łańcuch kopii dziennika transakcji. Dopiero ostatnia operacja w łańcuchu dostaje WITH RECOVERY, co uruchamia fazy redo i undo i otwiera bazę dla użytkowników. Przydatne warianty to WITH REPLACE (nadpisanie istniejącej bazy), WITH MOVE 'logiczna_nazwa' TO 'ścieżka' przy zmianie lokalizacji plików MDF i LDF oraz WITH STOPAT = '2026-03-11 14:25:00' dla odtworzenia do konkretnej sekundy. Przed właściwą operacją warto uruchomić RESTORE HEADERONLY, RESTORE FILELISTONLY i RESTORE VERIFYONLY - te trzy polecenia pokazują, co naprawdę siedzi w zestawie kopii i czy nośnik jest czytelny.
Odtwarzanie z kopii kontra ratowanie plików MDF i LDF
RESTORE zadziała tylko wtedy, gdy ktoś wcześniej zadbał o kopie. Bez nich zostaje wariant awaryjny: dołączenie plików danych poleceniem CREATE DATABASE ... FOR ATTACH, a gdy dziennik zaginął lub jest uszkodzony - FOR ATTACH_REBUILD_LOG, co oznacza utratę niezatwierdzonych transakcji. Model odzyskiwania decyduje o możliwościach: przy SIMPLE nie ma kopii dziennika, więc odtworzenie do punktu w czasie jest niemożliwe i tracisz wszystko od ostatniej pełnej lub różnicowej kopii. Przy FULL można jeszcze przed odtworzeniem wykonać kopię ogona dziennika (BACKUP LOG ... WITH NORECOVERY) i uratować transakcje sprzed awarii.
Komunikaty, które blokują odtwarzanie
Błąd 3154 oznacza, że zestaw kopii zawiera inną bazę niż docelowa - rozwiązaniem jest WITH REPLACE lub odtworzenie pod nową nazwą. Błąd 5133 i 3156 wskazują, że katalog docelowy nie istnieje albo konto usługi SQL Server nie ma do niego praw zapisu. Kopia wykonana na nowszej wersji silnika nigdy nie wczyta się na starszej - nie ma czegoś takiego jak downgrade formatu bazy, a próba kończy się informacją o nieobsługiwanej wersji. Baza, która utknęła w stanie RESTORING, to najczęściej skutek zapomnianego WITH RECOVERY; wystarczy wtedy RESTORE DATABASE nazwa WITH RECOVERY. Osobna pułapka to kopia zapisana na dysku sieciowym, do którego usługa SQL Server nie ma dostępu, mimo że widzi go zalogowany administrator.
Ratowanie firmowych baz danych po awarii sprzętu
W Warszawskim Pogotowiu Komputerowym najczęściej stykamy się z sytuacją, gdy serwer lub stacja z instancją SQL Server przestaje się uruchamiać, a kopie leżały na tym samym dysku co baza. Zaczynamy wtedy od obrazu sektorowego nośnika, dopiero z kopii obrazu próbujemy wyciągać pliki MDF, LDF i BAK - oryginalny dysk zostaje nietknięty. Obsługujemy zarówno firmy, jak i klientów indywidualnych, a sprzęt odbieramy i odwozimy naszymi samochodami, bez pośrednictwa firm kurierskich. Pracujemy przez całą dobę, siedem dni w tygodniu, więc awaria bazy o trzeciej w nocy nie musi czekać do poniedziałku.