Jak przywrócić pliki bazy danych Microsoft SQL Server 2022 (MDF, LDF i BAK)
W tym artykule omówimy jak odzyskać pliki bazy danych Microsoft SQL Server 2022. Pokażemy, co zrobić, jeśli baza danych lub jej pliki zostaną przypadkowo usunięte, a także jak użyć dostępnej kopii zapasowej, aby przywrócić bazę danych do stanu roboczego.

- Funkcje SQL Server
- Jak uzyskać dostęp do dysków serwera
- Jak odzyskać usuniętą bazę danych SQL Server 2022
- Wnioski
- Najczęściej zadawane pytania
- Komentarze
Do odzyskiwania plików użyjemy programu Hetman RAID Recovery. Aplikacja może wyszukiwać pliki MDF, LDF i BAK na dyskach fizycznych, macierzach RAID oraz dyskach dynamicznych, a także pracować z obrazami dysków sektor po sektorze. Odzyskane pliki można następnie wykorzystać do wykonania Restore lub Attach za pomocą Microsoft SQL Server.
Hetman RAID Recovery obsługuje systemy Windows, Linux i macOS.
Jak odzyskać usuniętą bazę danych SQL Server 2022? Pliki MDF, LDF i BAK
Funkcje SQL Server
Jakie pliki wykorzystuje Microsoft SQL Server i dlaczego są ważne podczas odzyskiwania:
- MDF — podstawowy plik bazy danych. Zawiera strukturę bazy danych, tabele, rekordy, indeksy i inne obiekty. Ten plik jest głównym źródłem danych, gdy trzeba przywrócić usuniętą bazę danych do SQL Server.
- LDF — plik dziennika transakcji. SQL Server zapisuje w nim zmiany bazy danych. Dziennik służy do zachowania spójności danych i jest ważnym składnikiem podczas dołączania bazy danych z jej plików fizycznych.
- BAK — plik kopii zapasowej. W naszym teście jest to pełna kopia zapasowa bazy danych utworzona przez SQL Server. Jeśli taki plik jest dostępny i nie jest uszkodzony, można go użyć do wykonania Restore bez konieczności dołączania oryginalnych plików MDF i LDF.
Dlatego scenariusz odzyskiwania zależy od tego, jakie pliki zostały zachowane lub odnalezione:
- Jeśli dostępny jest plik BAK, baza danych jest przywracana z kopii zapasowej.
- Jeśli nie ma kopii zapasowej, ale odzyskano pliki MDF i LDF, można ich użyć do Attach, pod warunkiem że pliki pozostają czytelne i spójne.
| Funkcja | Opis |
|---|---|
| Relacyjny model danych | SQL Server przechowuje informacje w tabelach powiązanych ze sobą za pomocą kluczy i ograniczeń. |
| Język zapytań T-SQL | Rozszerzenie SQL używane do tworzenia zapytań, zarządzania danymi, pisania procedur i wykonywania operacji administracyjnych. |
| Pliki bazy danych MDF i NDF | MDF jest podstawowym plikiem danych bazy danych, a NDF jest dodatkowym plikiem danych. Zawierają tabele, indeksy i inne obiekty bazy danych. |
| Plik dziennika transakcji LDF | Przechowuje zapisy transakcji i zmian w bazie danych. Dziennik jest używany do odzyskiwania po awarii i zachowania spójności danych. |
| Kopia zapasowa i przywracanie | SQL Server obsługuje pełne, różnicowe i dziennikowe kopie zapasowe, co umożliwia przywrócenie bazy danych do wymaganego punktu w czasie przy odpowiedniej konfiguracji. |
| Transakcje i ACID | Zapewniają atomowość, spójność, izolację i trwałość operacji na danych. |
| Indeksy | Przyspieszają wyszukiwanie i wykonywanie zapytań, ale mogą ulec uszkodzeniu lub wymagać przebudowy po niektórych awariach. |
| Mechanizmy kontroli integralności | Klucze główne i obce, ograniczenia oraz reguły sprawdzania pomagają zachować poprawność danych. |
| Tryby odzyskiwania | Tryby odzyskiwania Simple, Full i Bulk-logged określają możliwości tworzenia kopii zapasowych dziennika transakcji oraz opcje odzyskiwania bazy danych. |
| Narzędzia diagnostyczne | Polecenie DBCC CHECKDB sprawdza logiczną i fizyczną integralność bazy danych oraz pomaga wykrywać uszkodzenia. |
Do testów przygotowaliśmy Windows Server 2022 z Microsoft SQL Server 2022. Baza danych TestDB znajduje się na Dynamic Spanned Volume z systemem plików NTFS. Zawiera tabele, testowe rekordy klientów oraz pliki przechowywane w polu VARBINARY(MAX). Plik MDF jest zapisany w katalogu SQLData, plik dziennika LDF znajduje się w SQLLogs, a pełna kopia zapasowa TestDB_Full.bak znajduje się w katalogu SQLBackup.
Jak uzyskać dostęp do dysków serwera
METODA 1. Podłączenie dysków do stacji roboczej
Jeśli pliki SQL Server są przechowywane na oddzielnym dysku fizycznym, można go podłączyć do stacji roboczej za pomocą adaptera SATA, adaptera USB lub stacji dokującej.
Jeśli baza danych była przechowywana na Dynamic Spanned Volume lub w innej konfiguracji wielodyskowej, zaleca się uzyskanie dostępu do wszystkich dysków, które były jej częścią.
Jeśli nie ma możliwości jednoczesnego podłączenia wszystkich dysków, można utworzyć ich obrazy sektor po sektorze. Aby to zrobić w Hetman RAID Recovery, wybierz dysk fizyczny, uruchom funkcję Save disk, określ lokalizację zapisu i poczekaj na zakończenie procesu kopiowania.

Następnie dysk można odłączyć i w ten sam sposób utworzyć obraz kolejnego dysku. Zamontuj gotowe obrazy za pomocą Mount disk i użyj ich do analizy razem z dyskami fizycznymi.

Takie podejście umożliwia również dalszą pracę na kopiach bez dodatkowego obciążania dysków źródłowych.

METODA 2. Konfiguracja dostępu SSH
Istnieje również inny sposób uzyskania dostępu do dysków bez ich fizycznego wyjmowania. Jeśli Windows Server 2022 nadal działa i jest dostępny w sieci, dyski można podłączyć do Hetman RAID Recovery zdalnie przez SSH.
Aby to zrobić, należy wcześniej skonfigurować OpenSSH Server na Windows Server.

Uruchom usługę OpenSSH SSH Server — sshd — i w razie potrzeby ustaw jej automatyczne uruchamianie.


Sprawdź również dostęp przez port TCP 22 i upewnij się, że konto używane do połączenia ma odpowiednie uprawnienia do dostępu do dysków serwera.
Po skonfigurowaniu serwera otwórz Hetman RAID Recovery. W górnym menu przejdź do Tools i wybierz Connect via SSH.

W polu Remote server wpisz adres IP serwera Windows, a w polu Port wpisz 22. Poniżej, w sekcji Credentials, wybierz wymagany Authentication method i wprowadź nazwę użytkownika oraz hasło konta. W razie potrzeby można włączyć opcje Save server details i Save authentication data, aby nie trzeba było ponownie wpisywać tych parametrów. Następnie kliknij Next.

Po pomyślnym połączeniu z serwerem w następnym oknie zostaną wyświetlone dostępne dyski fizyczne i macierze logiczne. Wybierz dyski należące do wymaganego JBOD i kontynuuj.

Po potwierdzeniu pojawią się one w głównym oknie Hetman RAID Recovery, gdzie można z nimi pracować w taki sam sposób jak z dyskami podłączonymi lokalnie.
Zwróć uwagę na infrastrukturę sieciową. Ponieważ operacje na dyskach są wykonywane przez sieć, dla stabilnego i wygodnego połączenia zaleca się, aby stacja robocza, Windows Server oraz sieć lokalna obsługiwały prędkości transferu danych 1 Gbps i wyższe. Pomoże to przyspieszyć analizę dysków i transfer odzyskanych plików.
Ta metoda jest szczególnie wygodna, jeśli serwer nadal działa, a fizyczne odłączanie i podłączanie dużej liczby dysków do innego komputera jest niepożądane lub trudne.
Jak odzyskać usuniętą bazę danych SQL Server 2022
METODA 1. Przywracanie bazy danych z pliku BAK
Przejdźmy do pierwszego scenariusza. W tym przypadku pełny plik kopii zapasowej TestDB_Full.bak jest dostępny po odzyskaniu i można go użyć do przywrócenia bazy danych.
Otwórz Microsoft SQL Server Management Studio i połącz się z wymaganą instancją SQL Server.

W drzewie Object Explorer otwórz menu kontekstowe dla Databases i wybierz Restore Database.

Jako źródło wybierz Device, wskaż plik TestDB_Full.bak i upewnij się, że SQL Server poprawnie zidentyfikował kopię zapasową.

Aby uniknąć zmian w oryginalnej bazie danych TestDB, przywróć ją pod osobną nazwą, TestDB_Restored.

W ustawieniach przywracania określ oddzielne nazwy i ścieżki dla fizycznych plików bazy danych, aby nie kolidowały z plikami oryginalnej bazy TestDB. Dla nowej instancji użyj TestDB_Restored.mdf oraz TestDB_Restored_log.ldf.

Uruchom Restore i poczekaj na zakończenie operacji. Po pomyślnym przywróceniu baza danych TestDB_Restored pojawi się w Object Explorer.

Otwórz ją i zweryfikuj tabele oraz rekordy. Upewnij się również, że dostępne są dane zapisane w polu VARBINARY(MAX). W ten sposób sprawdzamy nie tylko utworzenie bazy danych, ale także dostępność jej zawartości po przywróceniu z pliku BAK.

METODA 2. Przywracanie usuniętej bazy danych
W następnym przypadku baza danych TestDB_Restored została przypadkowo usunięta i nie jest już wyświetlana w Microsoft SQL Server Management Studio. Jej pliki fizyczne TestDB_Restored.mdf i TestDB_Restored_log.ldf również stały się niedostępne.
Sama Dynamic Spanned Volume pozostaje dostępna, więc ponowne odtwarzanie JBOD nie jest konieczne.

Otwórz Hetman RAID Recovery, wybierz wolumin logiczny NTFS, na którym znajdowały się pliki SQL Server, i uruchom Fast scan.

Po zakończeniu analizy przejdź do katalogów, w których były przechowywane pliki MDF i LDF, i sprawdź wyniki. Znajdź usunięte pliki TestDB_Restored.mdf oraz TestDB_Restored_log.ldf i zanotuj ich nazwy, rozmiar oraz lokalizację.


Jeśli Fast scan nie znajdzie wymaganych plików lub wynik będzie niepełny, wróć do wyboru trybu analizy i uruchom Full scan. Wykonuje on głębszą analizę systemu NTFS i może znaleźć więcej usuniętych danych.
Po odnalezieniu wymaganych plików MDF i LDF dodaj je do listy odzyskiwania i zapisz na inny dysk fizyczny.

Nie zaleca się odzyskiwania plików z powrotem na oryginalny Dynamic Spanned Volume, ponieważ nowe zapisy mogą nadpisać inne dane, które nadal można odzyskać.
Po odzyskaniu plików fizycznych wróć do Microsoft SQL Server Management Studio. W menu kontekstowym dla Databases wybierz Attach.

Dodaj odzyskany plik TestDB_Restored.mdf i sprawdź, czy SQL Server widzi powiązany plik dziennika TestDB_Restored_log.ldf.

Jeśli oba pliki pozostają czytelne i spójne, wykonaj Attach. Po dołączeniu baza danych ponownie pojawi się na liście SQL Server.

Otwórz tabele i zweryfikuj rekordy. Dodatkowo sprawdź dostępność danych VARBINARY(MAX) użytych w testowej bazie danych. Jeśli struktura, rekordy i zapisane pliki są dostępne, odzyskiwanie można uznać za zakończone pomyślnie.

Wnioski
Omówiliśmy dwa główne scenariusze pracy z plikami bazy danych Microsoft SQL Server 2022:
- W pierwszym przypadku użyto dostępnego pliku kopii zapasowej BAK do przywrócenia bazy danych za pomocą Restore.
- W drugim przypadku, po usunięciu bazy danych, jej fizyczne pliki MDF i LDF zostały odnalezione i odzyskane przy użyciu Hetman RAID Recovery, po czym zostały ponownie dołączone do SQL Server za pomocą Attach.
Hetman RAID Recovery umożliwia pracę z dyskami fizycznymi, obrazami sektor po sektorze oraz dyskami zdalnymi przez SSH, a także obsługuje systemy Windows, Linux i macOS. Dzięki temu można zorganizować odzyskiwanie nawet wtedy, gdy pliki SQL Server są przechowywane na konfiguracjach wielodyskowych lub gdy odłączenie dysków serwera i podłączenie ich do innego komputera jest niewygodne.


