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

Wersja SQL Server z rejestru

Termin Definicja
Wersja SQL Server z rejestru

Wersję SQL Server odczytaną z rejestru wykorzystuje się do diagnostyki, gdy sama instancja jest niedostępna.

Co oznacza wersja SQL Server zapisana w rejestrze

Wersja SQL Server z rejestru to informacja odczytana z konfiguracji systemu Windows, a nie wynik zapytania wykonanego przez działającą usługę bazy danych. Ma znaczenie przede wszystkim wtedy, gdy instancja SQL Server nie uruchamia się, nie odpowiada na połączenia albo nie można ustalić jej wersji za pomocą narzędzi klienckich. Rejestr może zachować dane instalacyjne nawet wtedy, gdy proces silnika bazy danych jest zatrzymany.

Warto odróżnić kilka podobnych wartości. Pole Version opisuje pełny numer kompilacji zainstalowanych składników, natomiast PatchLevel wskazuje poziom aktualizacji zapisany przez instalator. Pole Edition określa edycję SQL Server, na przykład Express, Developer, Standard lub Enterprise, o ile dana instalacja udostępnia tę informację w odczytywanym kluczu. Numer kompilacji jest dokładniejszy niż sama nazwa głównej wersji, ponieważ pozwala rozpoznać poprawki zbiorcze i inne aktualizacje.

Klucze rejestru używane przez instalację silnika

Dla instalacji SQL Server typowym punktem początkowym jest klucz HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server. Podklucz Instance Names\SQL zawiera mapowanie między nazwą instancji widoczną dla administratora a wewnętrznym identyfikatorem instancji. Przykładowo wartość o nazwie MSSQLSERVER może wskazywać identyfikator taki jak MSSQL15.MSSQLSERVER. Ten identyfikator jest następnie używany do odnalezienia właściwego podklucza instalacji.

W podkluczu identyfikatora, w gałęzi Setup, znajdują się wartości instalacyjne, między innymi Version, PatchLevel, Edition oraz SQLPath. Ścieżka może więc wyglądać następująco: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\Setup. Fragment MSSQL15 jest identyfikatorem generowanym dla konkretnej generacji produktu, ale nie należy traktować samej liczby jako pełnego numeru wersji. Ostateczne rozpoznanie wymaga odczytania wartości Version lub PatchLevel.

Na komputerach 64-bitowych trzeba uwzględnić widok rejestru 32-bitowego i 64-bitowego. SQL Server oraz jego narzędzia mogą zapisywać informacje w różnych widokach zależnie od architektury składnika i sposobu instalacji. Jeżeli oczekiwany klucz nie występuje w standardowej gałęzi, diagnostyka powinna sprawdzić także odpowiednią gałąź przekierowaną przez mechanizm Windows Registry Redirector, zamiast zakładać, że SQL Server nie jest zainstalowany.

Odczyt wersji bez uruchamiania usługi SQL Server

Do odczytu można użyć Edytora rejestru, programu PowerShell albo narzędzi administracyjnych, które potrafią odczytywać wartości z HKEY_LOCAL_MACHINE. W PowerShell przykładowe polecenie dla konkretnego identyfikatora ma postać Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\Setup'. Zwrócone właściwości należy interpretować jako dane instalacyjne zapisane lokalnie. Samo polecenie nie potwierdza, że usługa silnika działa, że port TCP jest otwarty ani że do bazy można się zalogować.

Bezpieczna procedura zaczyna się od odczytu listy instancji z Instance Names\SQL, a dopiero potem przechodzi do podklucza Setup wskazanego identyfikatora. Przy wielu instancjach każdą nazwę trzeba analizować osobno, ponieważ różne instancje mogą mieć odmienne numery kompilacji, edycje i poziomy poprawek. Nie wolno wyciągać wniosku na podstawie nazwy usługi Windows, takiej jak MSSQL$NAZWA, bez powiązania jej z właściwym identyfikatorem instalacji.

Odczyt rejestru ma również ograniczenia. Pozostawione wpisy mogą pochodzić z niepełnej deinstalacji, nieudanej aktualizacji albo usuniętej instancji. Wartości rejestru mogą opisywać konkretny składnik, a nie wszystkie składniki zainstalowane na komputerze. Dlatego wynik należy porównać z listą usług SQL Server, katalogami instalacyjnymi, dziennikami instalatora oraz informacjami z programu SQL Server Setup. Jeżeli usługa jest dostępna, zapytanie SELECT SERVERPROPERTY('ProductVersion'), SERVERPROPERTY('ProductLevel'), SERVERPROPERTY('Edition') daje dane bezpośrednio z uruchomionego silnika i może posłużyć do weryfikacji.

Wykorzystanie numeru kompilacji w dalszej diagnostyce

Numer z rejestru pomaga ustalić, czy problem dotyczy wersji głównej, dodatku Service Pack albo aktualizacji zbiorczej. Po uzyskaniu pełnej wartości, na przykład w formacie 15.0.xxxx.x, należy sprawdzić ją w dokumentacji firmy Microsoft dotyczącej historii aktualizacji SQL Server. Nie należy zamieniać numeru na nazwę wersji wyłącznie na podstawie pierwszego członu, ponieważ konkretna kompilacja może mieć znaczenie dla obsługi błędu, zgodności narzędzi i znanych problemów instalacyjnych.

Informacja z rejestru jest szczególnie użyteczna przy analizie awarii startu usługi, uszkodzenia plików systemowych bazy, konfliktu składników albo nieudanej instalacji poprawki. Pozwala przygotować właściwy pakiet naprawczy i dobrać dokumentację dla konkretnej generacji SQL Server. Nie zastępuje jednak sprawdzenia dziennika SQL Server Error Log, Podglądu zdarzeń Windows, konfiguracji usługi, uprawnień do katalogów danych oraz stanu plików baz danych. Rejestr mówi, co instalator zapisał o produkcie; nie pokazuje całego bieżącego stanu silnika.

Przed zmianą jakichkolwiek wpisów należy wykonać kopię odpowiedniego klucza i dokumentować nazwę instancji, identyfikator, odczytaną wartość oraz czas badania. Ręczna edycja wartości wersji nie aktualizuje SQL Server i może utrudnić kolejne naprawy. W praktyce wpis służy więc jako źródło identyfikacyjne podczas diagnostyki, a właściwą naprawę wykonuje się za pomocą obsługiwanych narzędzi instalacyjnych, aktualizacji przeznaczonych dla dokładnej wersji oraz procedur przewidzianych dla SQL Server.

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