Microsoft SQL Server

Zarządzanie wieloma instancjami SQL Server Udostępnij na: Facebook

Opublikowano: 7 maja 2010
Autor: Krzysztof Stachyra

 

Zawartość strony

Kilka różnic  Kilka różnic
Opis mechanizmu zarządzania  Opis mechanizmu zarządzania

 

Zarządzanie instancją czy instancjami SQL Server to proces ciągły, któremu należy poświęcić sporo uwagi, jeśli ma być efektywny. Warto się zastanowić jak go zautomatyzować, kiedy instancji jest kilka, aby nie powielać czynności wykonywanych w ramach monitorowania i utrzymywania serwera baz danych.

Podczas codziennej pracy z serwerem baz danych SQL Server wykonuje się szereg czynności, które mają na celu utrzymanie wydajności, bezpieczeństwa oraz odpowiedniej konfiguracji SQL Server. Często serwerów (instancji) SQL Server jest kilka lub kilkanaście. W takiej sytuacji operacje te trzeba powielać, by konfiguracje poszczególnych instancjami były zgodne. Oczywiście może się znaleźć instancja o konfiguracji odbiegającej od standardu. W artykule przedstawiamy mechanizm zarządzania wieloma serwerami, który został rozbudowany w wersji 2008.

Kilka różnic

Mechanizm grupowania serwerów był już znany w wersji 2005, niestety ograniczał się do łączenia ich w jednostki logiczne. Utworzoną listę serwerów można było wyeksportować do pliku i importować na innej instancji SQL Server, co zapewniało łatwy do niej dostęp. W przypadku wersji SQL Server 2008 mechanizm ten został wzbogacony o funkcje:

  • pisania jednoczesnych zapytań do wielu instancji,
  • analizowania polityk pochodzących z mechanizmu Policy Based Management,
  • importowania polityk pochodzących z instancji.

 Do początku strony Do początku strony

Opis mechanizmu zarządzania

Przedstawiamy opis poszczególnych opcji tego mechanizmu z instrukcją wyjaśniającą, jak je poprawnie wykorzystać.

Utworzenie grupy serwerów

W celu skorzystania z mechanizmu zarządzania grupowego trzeba przede wszystkim utworzyć grupę serwerów. Domyślnie utworzona jest grupa Local Server Groups, która zawiera wszystkie lokalne instancje. Aby wyświetlić listę, należy z menu View wybrać opcję Registered Servers (Alt+Ctrl+G). Przykładową listę pokazano na rysunku 1. W środowisku testowym stworzonym na potrzeby tego artykułu została wykorzystana maszyna wirtualna z systemem operacyjnym Windows Server 2008 oraz SQL Server 2008 z zainstalowanymi trzema lokalnymi instancjami.

Na początku należy zrozumieć różnice między grupami widocznymi na rysunku 1.

Rysunek 1. Lista lokalnych instancji.

Mianowicie grupa lokalnych serwerów pozwala na zastosowanie tych samych mechanizmów co Central Management Servers. W przypadku CMS tworzony jest serwer centralny, który będzie zawierał całą logikę wykonywania zadań administracyjnych. Na nim samym jednak te czynności nie będą wykonywane. Podobne założenia są realizowane w zakresie dystrybucji zadań SQL Agenta. Jeśli zadanie ma być dystrybuowane, nie może zostać utworzone lokalnie. Mechanizm ten zatem wprowadza model tworzenia instancji zawierającej wzorzec administracji i przesyłania jej do instancji zdalnych. Oczywiście ta instancja może również utrzymywać bazy użytkowników do normalnej pracy, lecz dla niej indywidualnie należy powtórzyć utworzenie zadań SQL Agenta, import polityk lub powtórzyć zapytanie do grupy serwerów.

Aby zarejestrować serwer, trzeba kliknąć prawym przyciskiem myszy na opcji Central Management Server i wybrać Register Central Management Server. Zostanie wówczas utworzona jednostka, do której można dołączać pozostałe serwery. Widać to na rysunku 2.

Rysunek 2. Lista instancji w konfiguracji Central Management Servers.

Pisanie zapytań do wielu instancji jednocześnie

To najprostsza funkcja dodana do tego mechanizmu. Pozwala na wpisanie jednego zapytania, które zostanie kolejno wysłane do zdalnych instancji. Należy dodać, że zapytania nie są wykonywane równolegle, lecz wysyłane kolejno do każdej osobno. Aby wykonać takie zapytanie, trzeba wybrać z grupy CMS z menu prawego przycisku myszy opcję New Query lub Central Management Servers Actions > New Query (opcje te są analogiczne), a następnie w oknie New Query wpisać instrukcję SQL, która ma być wykonana, i wybrać Execute.

Rysunek 3. Zapytanie wysłane do kilku instancji.

Po wykonaniu takiej instrukcji przy domyślnej konfiguracji Management studio zwróci wynik zapytania ze wszystkich instancji, w których było w stanie ją wykonać (jeśli instancja jest Offline, instrukcję dla niej się pomija). Okno Query Results podlega konfiguracji w opcjach Mgm Studio (Tools > Options > Query Results > SQL Server > Multi Server Result).

Rysunek 4. Konfiguracja okna Query Results.

Trzeba pamiętać o tym, że połączenie jest realizowane za pomocą autoryzacji Windows. Użytkownik może posiadać różne uprawnienia, w różnych instancjach, co ma znaczny wpływ na wykonywane instrukcje T-SQL.

W ramach instrukcji można:

  • wywoływać procedury składowane (również systemowe),
  • wykorzystywać widoki i funkcje dynamiczne,
  • odczytywać zmienne systemowe,
  • wysyłać np. polecenie CREATE TABLE (jeśli istnieją bazy o takiej samej nazwie).

Nie można stosować złączeń oraz transakcji między serwerami.

Importowanie i analiza polityk mechanizmu Policy Based Management

Mechanizm Policy Based Management to nowa funkcja SQL Server 2008. Polega na tworzeniu polityk, zgodnie z którymi będzie sprawdzana konfiguracja serwera. Przykładowe zastosowanie można znaleźć w serii artykułów „Akademia SQL” Damiana Widery. Ten artykuł nie zawiera opisu mechanizmu PBM, tylko sposób jego wykorzystania w połączeniu z CMS. Za pomocą CMS można importować polityki do zdalnych instancji i sprawdzać zgodność konfiguracji z wybraną polityką. Daje to dosyć duże oszczędności czasu w przypadku, gdy jest kilka lub kilkanaście instancji, a ich konfiguracja ma być zgodna z jednym wzorcem.

Aby importować politykę, należy w grupie CMS wybrać z menu prawego przycisku myszy opcję Import Policies. Polityka może być importowana z pliku. Microsoft udostępnia podczas instalacji zestaw przykładowych polityk gotowych do wykorzystania. Można je znaleźć w katalogu (C:\Program Files\Microsoft SQL Server\100\Tools\Policies\).

W celu wykonania analizy polityk, z menu trzeba wybrać opcję Evaluate Policies. W ten sposób można przeanalizować politykę, która znajduje się w serwerze SQL lub w pliku. Pamiętajmy jednak, że nawet jeśli polityka pochodzi z jakiegoś serwera, wcześniej należy ją importować do wszystkich instancji, na których jest analizowana. W przypadku korzystania z pliku nie ma takiej konieczności.

Rysunek 5. Wybór źródła polityki.

Przeanalizowana polityka pokazuje status każdej instancji, w kontekście której była analizowana, podobnie jak w przypadku zapytań. Jeśli jakaś instancja jest niedostępna, pomija się ją.

Rysunek 6. Wynik analizy polityki.

Analizując szczegóły, można dokładnie sprawdzić wynik walidacji polityk i opis polityki dla każdej instancji oddzielnie.

Zalety mechanizmu grupowania serwerów

Jak widać, mechanizm jest dosyć intuicyjny w działaniu i zapewnia automatyzację zadań, które trzeba by wykonywać oddzielnie. Dzięki CMS skraca się czas potrzebny do ich realizacji. Wadą rozwiązania jest to, że instancja, która została określona jako nadrzędna, nie może być jednocześnie członkiem grupy. Nie można zatem wykonywać wspomnianych zadań. Jeśli jednak wszystkie instancje są utrzymywane na jednym serwerze fizycznym, można zastosować grupę lokalnych serwerów bez utraty dostępu do funkcji, jakie mechanizm CMS oferuje.


Krzysztof Stachyra Krzysztof Stachyra (MCT, MCSA, MCITP:DBA, MCTS, MCP)
Autoryzowany trener w firmie Compendium Centrum Edukacyjne Sp. z o.o. Ma doświadczenie w zakresie wdrażania i administracji SQL Server oraz MySQL.
Aktywny uczestnik i prelegent spotkań PLSSUG (Warszawa) i aktywny użytkownik portalu WSS.pl. Pracę dydaktyczną przeplata z projektami wdrożeniowymi i bieżącą administracją. Absolwent Wydziału Informatyki w Wyższej Szkole Technologii Informatycznych.
 Do początku strony Do początku strony

Microsoft SQL Server