Pliki .MDF i .LDF: Struktura i zarządzanie bazami danych SQL Server
2026-04-21Pliki .MDF i .LDF to fundamentalne składniki systemów baz danych Microsoft SQL Server, przechowujące dane oraz ich logi transakcyjne. Plik .MDF (Master Database File) jest głównym plikiem danych, w którym przechowywane są faktyczne dane tabel, indeksy, procedury składowane i inne obiekty bazy danych. Plik .LDF (Log Database File) natomiast zapisuje wszystkie zmiany dokonywane w bazie danych w formie logów transakcyjnych. Kiedy tworzysz nową bazę danych w SQL Server, zazwyczaj określasz ścieżki dla obu tych plików. Bez tych plików Twoja baza danych nie będzie funkcjonować.
Do czego służą pliki MDF i LDF?
SQL Server używa tych plików do organizacji i zarządzania danymi. Plik .MDF zawiera całą strukturę bazy danych i jej zawartość. Wyobraź sobie go jako główny segregator, w którym wszystko jest poukładane. Plik .LDF działa jak dziennik zdarzeń – rejestruje każdą operację, która zmienia dane w .MDF. To jest kluczowe dla przywracania bazy danych do spójnego stanu w przypadku awarii lub błędów. Gdy wykonujesz operację np. dodania nowego rekordu, informacja o tej operacji najpierw trafia do .LDF, a potem jest aplikowana do .MDF. To właśnie dzięki logom możesz przywrócić bazę do stanu sprzed błędu, odtwarzając transakcje z .LDF.
Czy pliki MDF i LDF to wirusy i czy można je usunąć?
Absolutnie nie, pliki .MDF i .LDF nie są wirusami. Są to kluczowe pliki systemowe aplikacji Microsoft SQL Server. Nie można ich po prostu usunąć. Próba usunięcia lub modyfikacji tych plików, gdy baza danych jest w użyciu, spowoduje natychmiastowe uszkodzenie bazy danych. Baza danych stanie się niedostępna, a przywrócenie jej może wymagać przywrócenia z kopii zapasowej. Pamiętaj, że to samo dotyczy kopiowania plików .MDF i .LDF bez wcześniejszego wykonania odpowiedniego procesu odłączenia (detaching) bazy danych w SQL Server Management Studio. Jeśli potrzebujesz przenieść bazę danych, zawsze używaj opcji „Detach” i „Attach”.
Typowe problemy i błędy z plikami MDF i LDF
Najczęściej spotykane problemy dotyczą uszkodzenia plików. Może to być spowodowane nagłym wyłączeniem serwera, awarią dysku twardego, błędami systemu plików lub nieprawidłowym odłączeniem bazy danych. W takich sytuacjach możesz spotkać błędy typu „Msg 823” lub „Msg 824”, które wskazują na problemy z czytaniem danych z plików bazy. Czasem zdarza się również, że plik .LDF rośnie nieproporcjonalnie do rozmiaru plików danych, co wymaga jego odpowiedniego przetworzenia (shrink log). U mnie pierwsza taka sytuacja wywołała panikę – baza danych zajmowała kilkanaście GB, a log ponad 100 GB! Dopiero odpowiednie zapytanie `DBCC SHRINKFILE` pomogło to zoptymalizować.
Dlaczego pliki MDF i LDF są chronione?
Pliki .MDF i .LDF są domyślnie chronione jako pliki systemowe i read-only przez system operacyjny i sam SQL Server, aby zapobiec przypadkowym uszkodzeniom. SQL Server zarządza dostępem do tych plików. Nawet jeśli masz uprawnienia administratora systemu Windows, nie powinieneś ich modyfikować bezpośrednio. Systemowy mechanizm ochrony zapewnia integralność danych. Gdy baza danych jest odłączona od serwera, pliki te nadal są chronione przez mechanizmy systemu plików, choć w tym stanie można je bezpiecznie przenieść lub skopiować w celu archiwizacji lub migracji.
Najczęstsze pytania
Czym różnią się pliki MDF od LDF?
MDF zawiera faktyczne dane bazy, podczas gdy LDF zapisuje dziennik transakcji, co jest kluczowe dla odzyskiwania danych.
Czy mogę przenieść pliki MDF i LDF ręcznie na inny serwer?
Nie, należy użyć funkcji „Detach” i „Attach” w SQL Server Management Studio, aby zapewnić spójność bazy danych.
Co się stanie, jeśli usunę plik MDF?
Baza danych przestanie działać i zostanie uszkodzona, co prawdopodobnie uniemożliwi jej odzyskanie bez kopii zapasowej.
