Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

5123 – Brak dostępu do pliku MDF lub LDF

Termin Definicja
5123 – Brak dostępu do pliku MDF lub LDF

Błąd 5123 sygnalizuje brak dostępu do pliku danych MDF lub pliku dziennika LDF podczas operacji na bazie danych.

Co oznacza błąd 5123 w SQL Server

Błąd 5123 w Microsoft SQL Server oznacza, że aparat bazy danych nie może uzyskać dostępu do wskazanego pliku bazy danych. Najczęściej chodzi o plik danych z rozszerzeniem .mdf, dodatkowy plik danych .ndf albo plik dziennika transakcji z rozszerzeniem .ldf. Sam komunikat nie wskazuje jeszcze jednej, konkretnej przyczyny. Informuje przede wszystkim o niepowodzeniu operacji systemu Windows wykonywanej z kontekstu usługi SQL Server.

Pliki MDF i NDF przechowują strony danych oraz metadane bazy, natomiast plik LDF zawiera dziennik transakcji. Podczas dołączania bazy, jej odtwarzania, uruchamiania lub przenoszenia plików SQL Server musi móc odczytywać istniejące pliki, a w wielu operacjach także tworzyć, modyfikować i blokować je przed jednoczesnym użyciem przez inne procesy. Jeżeli system operacyjny odrzuci którąkolwiek z tych czynności, SQL Server może zwrócić błąd 5123.

Uprawnienia konta usługi a dostęp do plików MDF i LDF

Jedną z najczęstszych przyczyn jest brak odpowiednich uprawnień dla konta, na którym działa usługa SQL Server. Uprawnienia użytkownika wykonującego polecenie w SQL Server Management Studio nie są tym samym co uprawnienia procesu serwera baz danych. To usługa SQL Server otwiera pliki MDF, NDF i LDF, dlatego konto usługi musi mieć dostęp do folderu oraz do samych plików.

Problem pojawia się często po ręcznym skopiowaniu bazy do innego katalogu, zmianie lokalizacji plików, odtworzeniu danych z kopii lub próbie użycia plików utworzonych przez inną instancję. Należy ustalić nazwę instancji i powiązane z nią konto usługi, a następnie sprawdzić uprawnienia NTFS na każdym katalogu znajdującym się w ścieżce. Samo przyznanie dostępu do pliku może nie wystarczyć, jeżeli konto nie może przejść przez katalog nadrzędny albo utworzyć pliku dziennika w docelowej lokalizacji.

Warto także rozróżnić uprawnienia od właściciela pliku. Zmiana właściciela nie zastępuje praw odczytu, zapisu i modyfikacji. Podobnie uruchomienie narzędzia administracyjnego z podwyższonymi uprawnieniami nie nadaje automatycznie usłudze SQL Server dostępu do plików. Diagnostyka powinna obejmować rzeczywiste konto procesu, dziedziczenie uprawnień oraz ewentualne reguły blokujące dostęp.

Ścieżka, blokada i stan systemu plików

Błąd 5123 może wystąpić również wtedy, gdy ścieżka zapisana w metadanych bazy nie istnieje w bieżącym środowisku. Dotyczy to szczególnie baz przenoszonych między komputerami, gdy pliki znajdowały się wcześniej na innym dysku lub w innym katalogu. Należy porównać ścieżki używane przez SQL Server z faktycznym położeniem plików i sprawdzić, czy wskazany wolumin jest dostępny dla systemu.

Przyczyną może być także zajęcie pliku przez inną instancję SQL Server, program do tworzenia kopii zapasowych, skaner antywirusowy albo narzędzie synchronizujące dane. Plik MDF lub LDF nie powinien być kopiowany ani przenoszony metodą przeznaczoną dla zwykłych dokumentów, gdy baza jest aktywnie używana. Do przenoszenia bazy stosuje się mechanizmy SQL Server, takie jak kopia zapasowa i odtworzenie albo kontrolowana procedura detach/attach, zależnie od sytuacji i modelu pracy z bazą.

Trzeba sprawdzić również, czy plik nie jest oznaczony jako tylko do odczytu, czy na dysku jest wystarczająca ilość wolnego miejsca oraz czy system plików nie zgłasza błędów. Jeżeli problem dotyczy LDF, przyczyną może być brak możliwości utworzenia lub powiększenia dziennika. Jeżeli dotyczy MDF albo NDF, SQL Server może nie mieć możliwości odczytu stron danych lub zapisania zmian w strukturze pliku. Dodatkowych informacji dostarczają pełny komunikat SQL Server, dziennik błędów instancji oraz Podgląd zdarzeń systemu Windows.

Bezpieczna kolejność postępowania diagnostycznego

Najpierw należy zachować pełny tekst błędu wraz ze ścieżką pliku i nazwą operacji, podczas której wystąpił. Następnie trzeba ustalić, czy problem dotyczy odczytu, zapisu, dołączenia bazy, odtworzenia kopii czy startu instancji. Kolejny etap obejmuje sprawdzenie istnienia wszystkich plików bazy, dostępności woluminu, uprawnień konta usługi SQL Server oraz blokad utrzymywanych przez inne procesy.

Nie należy usuwać pliku LDF ani tworzyć nowej bazy z podobną nazwą w celu obejścia błędu. Dziennik transakcji jest częścią struktury bazy i może być potrzebny do odzyskania spójnego stanu danych. Nie powinno się także uruchamiać przypadkowych poleceń naprawczych, zmieniać ścieżek plików ani nadpisywać istniejących plików bez wcześniejszej kopii i oceny stanu bazy. Błąd dostępu może być wyłącznie problemem systemu plików, ale może też ujawnić niepełne przeniesienie bazy lub uszkodzenie nośnika.

Jeżeli uprawnienia i ścieżki są prawidłowe, a błąd nadal występuje, należy przeanalizować logi SQL Server, stan usługi, dostępność dysku oraz komunikaty systemowe z tego samego czasu. W przypadku baz używanych produkcyjnie działania powinny być wykonywane na kopii roboczej albo zgodnie z udokumentowaną procedurą odzyskiwania. Dopiero po ustaleniu konkretnej przyczyny można dobrać rozwiązanie, na przykład korektę uprawnień, przywrócenie właściwej ścieżki, zwolnienie blokady lub odtworzenie bazy z poprawnej kopii zapasowej.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę