Parametry startowe SQL Server to przełączniki usługi, m.in. -m dla trybu jednego użytkownika i -T dla flag śledzenia.
Rola parametrów startowych w SQL Server
Parametry startowe SQL Server są przełącznikami odczytywanymi podczas uruchamiania usługi silnika bazy danych. Nie są to polecenia wykonywane w zapytaniu T-SQL ani ustawienia aplikacji klienckiej. Określają między innymi położenie plików systemowej bazy master, lokalizację dziennika błędów, sposób uruchomienia instancji oraz włączenie określonych flag śledzenia. Ich działanie rozpoczyna się przed normalnym przyjmowaniem połączeń przez silnik, dlatego mogą być użyteczne wtedy, gdy standardowa konfiguracja uniemożliwia poprawny start.
Parametry te konfiguruje się zwykle w SQL Server Configuration Manager, w właściwościach usługi danej instancji, w polu parametrów startowych. Wartość każdego przełącznika zaczyna się od myślnika, na przykład -d albo -e, a argument jest podawany bezpośrednio po parametrze lub po spacji, zależnie od konkretnego zapisu. Po zmianie konfiguracji konieczne jest ponowne uruchomienie usługi. Błędna ścieżka do pliku, literówka w parametrze albo użycie opcji nieobsługiwanej przez daną wersję SQL Server może spowodować nieudane uruchomienie silnika.
Parametry plików systemowej bazy master i dziennika
Najważniejsze parametry określające pliki startowe to -d, -l oraz -e. Parametr -d wskazuje pełną ścieżkę do głównego pliku danych bazy master, zwykle pliku MDF. Parametr -l wskazuje pełną ścieżkę do pliku dziennika transakcji tej bazy, zwykle pliku LDF. Parametr -e określa lokalizację pliku dziennika błędów SQL Server. Są to ścieżki używane przez silnik podczas inicjalizacji, dlatego muszą wskazywać istniejące lokalizacje, do których konto usługi ma odpowiednie uprawnienia.
Baza master zawiera metadane konieczne do uruchomienia instancji, w tym informacje o bazach danych, kontach logowania i konfiguracji serwera. Jeżeli plik danych albo dziennika master zostanie przeniesiony, sama zmiana położenia plików w systemie plików nie wystarczy. Parametry startowe muszą odpowiadać rzeczywistym ścieżkom, a usługa musi mieć możliwość odczytu i zapisu w wymaganych katalogach. W przypadku problemu z uruchomieniem pierwszym miejscem kontroli jest dziennik błędów wskazany przez -e, ponieważ może zawierać komunikat o braku pliku, odmowie dostępu, uszkodzeniu bazy lub niezgodności konfiguracji.
Parametr -s służy do wskazania nazwy instancji, gdy uruchamiany jest nazwany egzemplarz SQL Server. W instalacji domyślnej nazwa instancji jest inna niż w instalacji nazwanej, dlatego identyfikacja usługi i odpowiadającego jej zestawu parametrów ma znaczenie praktyczne. Nie należy kopiować parametrów z jednej instancji do drugiej bez sprawdzenia ścieżek, nazwy usługi oraz lokalizacji plików systemowych.
Tryb jednego użytkownika i flagi śledzenia
Parametr -m uruchamia SQL Server w trybie jednego użytkownika. W tym trybie silnik dopuszcza tylko jedno połączenie użytkownika, co może umożliwić wykonanie czynności administracyjnych po utracie dostępu do konfiguracji lub konta logowania. Tryb ten nie oznacza ograniczenia jednej bazy danych ani jednego zapytania. Ograniczenie dotyczy liczby jednoczesnych połączeń, a połączenie może zostać zajęte przez narzędzie działające automatycznie, na przykład usługę SQL Server Agent.
Podczas pracy w trybie jednego użytkownika trzeba kontrolować kolejność uruchamiania usług i sposób nawiązywania połączenia. Jeżeli inne narzędzie połączy się pierwsze, administrator może nie uzyskać oczekiwanego dostępu. W określonych scenariuszach można ograniczyć akceptowane połączenie do konkretnego programu, stosując wariant parametru -m z nazwą aplikacji klienta. Taki zapis wymaga dokładnego sprawdzenia składni dla używanej wersji i narzędzia, ponieważ pomyłka może uniemożliwić przewidywalne zalogowanie. Po zakończeniu czynności naprawczych parametr trybu jednego użytkownika należy usunąć i ponownie uruchomić usługę w normalnym trybie.
Parametr -T włącza flagę śledzenia. Flagi śledzenia zmieniają zachowanie silnika w zdefiniowanym zakresie, na przykład podczas diagnostyki określonych problemów lub analizy działania mechanizmów SQL Server. Sam przełącznik nie opisuje celu flagi: numer po -T ma znaczenie zależne od dokumentacji konkretnej wersji SQL Server. Nie wolno zakładać, że numer używany w innym środowisku albo innej wersji produktu ma identyczne działanie. Flagi wpływające na start lub przetwarzanie zapytań powinny być włączane tylko wtedy, gdy ich funkcja i skutki są znane.
Bezpieczna analiza konfiguracji uruchomieniowej
Przed zmianą parametrów należy ustalić, czy problem dotyczy samego silnika, plików systemowych, uprawnień konta usługi, miejsca na dysku, zależności usługi czy konfiguracji połączenia. Dziennik błędów SQL Server może wskazać etap, na którym start się zatrzymuje. Warto porównać ścieżki z parametrów -d, -l i -e z rzeczywistą strukturą katalogów oraz sprawdzić, czy pliki należą do właściwej instancji. Nie należy zmieniać kilku parametrów jednocześnie bez zachowania kopii poprzedniej konfiguracji, ponieważ utrudnia to ustalenie, która zmiana wpłynęła na rezultat.
Parametr -f uruchamia SQL Server w minimalnym trybie konfiguracji. Jest to tryb awaryjny przeznaczony do sytuacji, w których ustawienia konfiguracyjne uniemożliwiają normalny start. Po uruchomieniu w takim trybie część ustawień może mieć wartości minimalne, a dostępne zasoby i możliwości administracyjne mogą być ograniczone. Nie jest to uniwersalna metoda naprawy uszkodzonych baz ani zastępstwo dla odtworzenia prawidłowych plików. Po wykonaniu kontrolowanych czynności trzeba przywrócić standardowe parametry i zweryfikować normalny restart.
Wszelkie zmiany powinny być poprzedzone zapisaniem aktualnych wartości, sprawdzeniem kopii zapasowych oraz potwierdzeniem, że używany jest właściwy serwis SQL Server. Szczególną ostrożność należy zachować przy ręcznej edycji konfiguracji usługi lub rejestru systemowego. Jeżeli instancja nie startuje po zmianie, analizuje się komunikaty z dziennika błędów, stan plików master, uprawnienia konta usługi i zgodność parametrów z dokumentacją konkretnej wersji SQL Server. Diagnostyka i naprawa takiego problemu wymaga rozdzielenia błędu konfiguracji startowej od ewentualnego uszkodzenia systemu plików lub samej bazy danych.