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

Zapytania WMI a rejestr SQL

Termin Definicja
Zapytania WMI a rejestr SQL

Zapytania WMI pozwalają odczytać z rejestru informacje o konfiguracji instancji z poziomu systemu operacyjnego.

Rola WMI w odczycie konfiguracji SQL Server

Zapytania WMI dotyczące SQL Server służą do odczytywania informacji o konfiguracji instancji z poziomu systemu Windows. SQL Server udostępnia w tym celu dostawcę WMI, który prezentuje wybrane ustawienia w postaci obiektów i klas możliwych do odczytania przez narzędzia administracyjne. Mechanizm ten jest wykorzystywany między innymi przez SQL Server Configuration Manager, dlatego pozwala sprawdzać konfigurację usług oraz protokołów sieciowych bez ręcznego przeszukiwania kluczy rejestru.

WMI nie jest drugim rejestrem przechowującym niezależną konfigurację bazy danych. Jest warstwą dostępu do informacji zarządzających systemem SQL Server i jego składnikami. Odczytany obiekt może przedstawiać właściwość, która w tle odpowiada ustawieniu zapisanym w konfiguracji systemu Windows, ale wynik zapytania powinien być interpretowany zgodnie z modelem dostawcy SQL Server, a nie jako bezpośrednia kopia całego rejestru.

Przestrzeń nazw i klasy dostawcy SQL Server

Dostawca WMI dla SQL Server znajduje się w przestrzeniach nazw pod główną ścieżką root\Microsoft\SqlServer. Konkretna przestrzeń zarządzania może mieć oznaczenie zależne od wersji zainstalowanego silnika, na przykład ComputerManagement albo numerowaną odmianę ComputerManagementXX. Nie należy zakładać jednej stałej końcówki dla każdej instalacji. Właściwą przestrzeń trzeba ustalić na danym komputerze, uwzględniając wersję SQL Server i zainstalowane składniki.

W tych przestrzeniach dostępne są klasy opisujące między innymi usługi SQL Server, protokoły sieciowe oraz ich właściwości. Przykładowo obiekt klasy ServerNetworkProtocol może reprezentować protokół przypisany do instancji, a powiązane właściwości określają jego stan i parametry. Klasy usług pozwalają odczytać informacje o składnikach takich jak usługa silnika bazy danych lub SQL Server Agent, jeżeli dany składnik został zainstalowany. Lista klas nie jest identyczna w każdej wersji, dlatego zapytanie powinno być poprzedzone sprawdzeniem dostępnego dostawcy.

Odczyt ustawień a rzeczywista konfiguracja instancji

Wynik zapytania WMI może pomóc ustalić, czy określony protokół jest włączony, jaki adres lub port został skonfigurowany oraz czy usługa SQL Server jest zarejestrowana w systemie. Nie każda zmiana pojawia się jednak natychmiast w działającym procesie. Część ustawień sieciowych jest odczytywana podczas uruchamiania usługi, więc modyfikacja konfiguracji może wymagać ponownego uruchomienia odpowiedniej usługi, aby zaczęła obowiązywać.

Trzeba również rozdzielić konfigurację instancji od konfiguracji samego silnika. Ustawienia serwera zmieniane procedurą sp_configure, takie jak opcje pamięci lub równoległości, są obsługiwane przez SQL Server i nie powinny być utożsamiane z właściwościami dostawcy WMI. WMI może dostarczyć informacji o warstwie usług i komunikacji, natomiast stan dostępny wewnątrz silnika należy weryfikować przy użyciu zapytań T-SQL oraz widoków katalogowych lub dynamicznych widoków zarządzania właściwych dla SQL Server.

Rozbieżność między WMI, SQL Server Configuration Manager, rejestrem i wynikiem zapytania T-SQL nie musi oznaczać uszkodzenia danych. Może wynikać z odczytu innej instancji, pomylenia instancji domyślnej z nazwanym egzemplarzem, użycia niewłaściwej przestrzeni nazw albo sprawdzania wartości przed ponownym uruchomieniem usługi. W diagnostyce należy więc porównać nazwę instancji, nazwę usługi, wersję dostawcy oraz czas ostatniego przeładowania konfiguracji.

Bezpieczna interpretacja zapytań WMI

Zapytanie wykonywane lokalnie może być uruchomione za pomocą narzędzi CIM lub WMI dostępnych w Windows. Przykładowy schemat polecenia PowerShell to Get-CimInstance -Namespace 'root\Microsoft\SqlServer\ComputerManagementXX' -ClassName 'ServerNetworkProtocol', gdzie oznaczenie XX trzeba zastąpić przestrzenią faktycznie obecną w systemie. Samo polecenie odczytuje obiekty; nie należy traktować go jako uniwersalnej komendy do modyfikowania rejestru ani konfiguracji silnika.

Jeżeli odczyt kończy się błędem, należy sprawdzić istnienie przestrzeni nazw, dostępność dostawcy SQL Server WMI, uprawnienia użytkownika oraz zgodność architektury i wersji zainstalowanych narzędzi. W przypadku zdalnego odczytu dochodzą zasady komunikacji i uprawnienia systemu Windows, dlatego wynik lokalny i zdalny może się różnić. W praktyce najpierw ustala się, czy problem dotyczy samego dostawcy WMI, czy usługi SQL Server, a dopiero później analizuje wartości konfiguracyjne. Przy diagnostyce komputera, na którym działa SQL Server, konieczne jest zachowanie rozdziału między odczytem ustawień systemowych przez WMI a weryfikacją parametrów widocznych bezpośrednio w silniku bazy danych.

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