Zmiana lokalizacji pliku tempdb.mdf spowodowała, że serwer nie startuje

4-Gru-2011

Administrator zmieniając lokalizację plików tymczasowej bazy danych wykonał polecenie:

>ALTER DATABASE Tempdb MODIFY FILE (name=’tempdev’, filename=’d:\<sciezka>’)

jednak zamiast w ścieżce ująć nazwę pliku wskazał na istniejący ważny i systemowy katalog. Od tej pory serer nie uruchamia się wskazując na problem z utworzeniem bazy danych tempdb

Komunikat:

Clearing tempdb database.
Error: 5123, Severity: 16, State: 1.
FCB::Open failed: Could not open file <ścieżka> for file number 1. OS error 5 (Access is denied.).
Could not create tempdb. You may not have enaough disk space available. Free additional disk space by deleting other files on the temdb drive and then restart SQL Server. Cheeck for additional errors in the errorlog that may indicate why the tempdb files could not be initialized.

 Jak naprawić ten problem? Trzeba zmienić ścieżkę do pliku bazy danych tempdb. Ale żeby to zrobić trzeba uruchomić serwer. Serwer nie statuje bo ścieżka jest zła. Zamknięte kółko. Dlatego najpierw uruchom serwer z opcjami:

  • -f ładowanie minimalne
  • -c w trybie nie usługi ale aplikacji konsolowej
  • -s <Nazwa instancji>
  • -T3608 – flaga powodująca nie sprawdzanie/ ładowanie innych baz danych aż nie będą wymagane przez jakąś procedurę
Uruchomienie sqlservera:
„c:\program…\binn\sqlserver.exe” -f -c -T3608 -s „NAZWA_INSTANCJI”

Jest też flaga -T4022 powodująca, że procedury startowe się nie pouruchamiają.

Potem połączenie „klienta” do serwera. Uwaga! Na tym serwerze działał Reporting Services, który bardzo szybko próbował coś działać na tempdb, więc z tym poleceniem musiałem się pośpieszyć, a jak nie zdążyłem to serwer się wywalał…:

sqlcmd -S <nazwa_serwera\nazwa_instancji>

Teraz pozostają komendy do wykonania na już działającym serwerze:

>use master
>go
>ALTER DATABASE Tempdb MODIFY FILE (name=’tempdev’,filename=’d:\<sciezka>\tempdb.mdf’)
>go
>exit

 Po ponownym uruchomieniu serwera wszystko działało.

Dodaj komentarz:

Autor: Rafał Kraik