Już sam tytuł może dla znawców tematu zabrzmieć kontrowersyjnie. Baza danych SMS-a 2003 na klastrze? Przecież sam producent (czyli Microsoft) twierdzi, że tego zrobić się nie da. W Google też nie znajdziemy nic ciekawego poza informacjami, iż rozwiązanie to jest „not supported”
Czy więc jest to możliwe? Owszem. Niewątpliwe zalety takiego rozwiązania – które w wypadku klastrowania są oczywiste – skłoniły mnie do podjęcia wyzwania i opracowania skutecznej metody wdrożenia.
Zanim przejdziemy do jakichkolwiek szczegółów – trzeba przypomnieć, że poniższy opis odnosi się do konfiguracji typu „not supported”. Jak zobaczycie Państwo, nie oznacza to „not possible”, natomiast ma jedną poważną konsekwencję: rozwiązanie to nie jest objęte standardową pomocą techniczną ze strony firmy Microsoft. Jeśli więc macie wykupioną usługę pomocy technicznej, uzgodnijcie późniejszą obsługę rozwiązania przed jego wdrożeniem (nie powinno być z tym większego problemu).
Druga kwestia to poziom zaawansowania – metodyka opisana poniżej do najprostszych nie należy i bez solidnej wiedzy na temat SMS-a 2003 i choćby podstaw SQL-a na klastrze nie zasiadałbym do jej realizacji (przynajmniej nie w środowisku produkcyjnym).
Jaki jest więc konkretnie nasz cel? Jest nim skorzystanie z dobrodziejstw posiadania bazy programu SMS-2003 w środowisku klastrowym SQL 2005. Platformą bazową rozwiązania jest system Microsoft Windows Server 2003 z najnowszym dodatkiem Service Pack (może być to wersja R2). W kolejnych częściach artykułu opisane zostaną dwa warianty – upgrade z pojedynczej bazy SQL 2000 lub 2005, a tahże nowa instalacja. Ze względu na późniejsze niewielkie utrudnienia w procesie aktualizacji zalecane jest korzystanie z nośnika instalacyjnego SMS 2003 z wbudowanym dodatkiem Service Pack 3. Klaster SQL 2005 powinien być zaktualizowany do wersji Service Pack 2.
Niezmiernie istotne jest wstępne ustalenie konwencji nazewniczej oraz adresacji wykorzystywanej w trakcie wdrożenia (poszczególne nazwy będą miały krytyczne znaczenie dla powodzenie przedsięwzięcia). Jest to oczywiście kwestia gustu; ja zaproponuję następujące nazwy i adresy IP dla komponentów bazowych:
Elementy podstawowe:
| Komponent | Nazwa NETBIOS | Adres IP/maska |
Kontroler domeny | DC01 | 10.10.0.1/255.0.0.0 |
Site Serwer SMS 2003 | SMSSRV | 10.10.0.10/255.0.0.0 |
Środowisko klastrowe:
| Komponent | Nazwa NETBIOS | Adres IP/maska |
Pierwszy węzeł klastra | NODE1 | 10.10.0.20/255.0.0.0 |
Drugi węzeł klastra | NODE2 | 10.10.0.21/255.0.0.0 |
Nazwa sieciowa klastra | CLUSRV | 10.10.0.30/255.0.0.0 |
Wirtualny serwer SQL | CLUSQL | 10.10.0.40/255.0.0.0 |
Niezależnie od tego, czy przeprowadzany będzie upgrade, czy nowa instalacja SMS-a 2003, podstawą jest prawidłowo skonfigurowany klaster SQL 2005. Jego podstawowa konfiguracja, w przeciwieństwie do pozostałych opisanych tu działań, nie odbiega od standardów przedstawionych w dokumentacji Microsoft. Dlatego pozwolę sobie odnieść się do niej za pomocą odpowiednich linków.
| Uwaga: |
Jeżeli jesteśmy zainteresowani upgradem istniejącego środowiska SMS do klastra SQL, podstawowym elementem, który należy uwzględnić w trakcie instalacji środowiska SQL 2005, jest parametr collation (definiowany przez użytkownika w trakcie instalacji), który musi być identyczny z tym na bieżącej bazie wykorzystywanej przez SMS-a. W wypadku rozbieżności gwarantowane jest cykliczne pojawianie się błędów w statusie Site-a SMS. |
Ażeby sprawdzić bieżącą collation na serwerze SQL 2000 należy:
| • | Uruchomić SQL Enterprise Manager-a. |
| • | Rozwinąć grupę serwerów SQL i wybrać serwer hostujący bazę SMS. |
| • | We właściwościach serwera w zakładce General sprawdzić bieżące ustawienia collation. |

Rys. 1. Uruchomienie SQL Enterprise Manager.
Ażeby sprawdzić bieżącą collation na serwerze SQL 2005 należy:
| • | Uruchomić SQL Server Management Studio. |
| • | Po uwierzytelnieniu się wejść we właściwości serwera SQL. |
| • | W zakładce General właściwości serwera odszukać wiersz Server Collation w celu sprawdzenia bieżących ustawień collation. |

Rys. 2. Uruchomienie SQL Server Management Studio.
W sytuacji, gdy posiadamy już istniejący klaster SQL 2005, a jego parametr collation różni się od tego z bieżącej bazy systemu SMS, konieczna jest jego zmiana na serwerze klastrowym. Można tego dokonać za pomocą następującego polecenia, korzystając z nośnika instalacyjnego SQL 2005:
start /wait <nośnik_instalacyjny>\setup.exe /qn VS=<VSName> INSTANCENAME=<NazwaInstancji>_ REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=<Hasło> SAPWD=<Hasło> SQLCOLLATION=<NowaCollation>_ SQLACCOUNT=<domena\użytkownik> SQLPASSWORD=< Hasło> AGTACCOUNT=< domena\użytkownik> > AGTPASSWORD=< Hasło> SKUUPGRADE=1
Gdzie:
VSName – nazwa wirtualnego serwera SQL (np. CLUSQL)
SQLCOLLATION – nazwa nowej collation (np. Latin1_General_CI_AS)
ADMINPASSWORD – hasło użytkownika na którym wykonujemy operację. Użytkownik ten musi posiadać uprawnienia administracyjne do wszystkich węzłów klastra.
SQLACCOUNT - konto serwisowe usługi SQL Server
SQLPASSWORD – hasło konta serwisowego usługi SQL Server
AGTACCOUNT - konto serwisowe usługi SQL Server Agent
AGTPASSWORD – hasło konta serwisowego usługi SQL Server Agent
Należy jednak wcześniej upewnić się, czy nie będzie miało to negatywnych skutków dla baz egzystujących na serwerze.
Opis instalacji standardowego klastra SQL 2005 znajduje się pod poniższym łączem: http://technet.microsoft.com/en-us/library/ms179530.aspx Niezbędne jest również poprawne skonfigurowanie na klastrze usługi MSDTC. Odpowiednie procedury znajdują się pod poniższymi łączami: http://support.microsoft.com/kb/817064 http://support.microsoft.com/kb/301600 W wypadku wystąpienia jakichkolwiek problemów z łącznością konsoli administracyjnej SMS wynikających z posiadanej konfiguracji warto zapoznać się również z treścią poniższego artykułu: http://support.microsoft.com/kb/317872 Konieczne jest również włączenie autentykacji Kerberos na zasobie klastrowym reprezentującym wirtualną nazwę serwera SQL. Po wykonaniu tych operacji należy aktualizować bazę danych SQL 2005 do wersji Service Pack 2. |
W wypadku posiadania istniejącej struktury SMS 2003, do przekierowania bazy danych na klaster SQL wykorzystywana będzie funkcja resetowania Site-u SMS.
| Uwaga: |
Opisany poniżej scenariusz zakłada, iż usługa SMS provider zainstalowana jest na serwerze hostującym bazę SMS (jest to typowa konfiguracja). |
W tym celu należy:
1. | Upewnić się, czy klienci nie korzystają z usług serwera SMS 2003, oraz czy na bieżącej bazie SQL nie są wykonywane zaplanowane zadania utrzymaniowe (takie jak backup, reindeksacja, itp.) | ||||||
2. | Zatrzymać następujące usługi na serwerze SMS:
| ||||||
3. | Zatrzymać następujące usługi na serwerze SQL hostującym bieżącą bazę SMS 2003
| ||||||
4. | Wykonać kopię zapasową bazy danych SMS 2003 (nazwa bazy to SMS_sitecode) | ||||||
5. | Odtworzyć bazę na klastrze SQL 2005. |
| Uwaga: |
Na tym etapie nie wolno usuwać pierwotnej bazy danych – będzie ona jeszcze wykorzystywana w dalszym etapie migracji. |
1. | Na poszczególnych węzłach klastra należy dodać do lokalnej grupy administratorów konto komputera będącego Site Server-em SMS. W moim wypadku jest to SMSSRV. |
2. | Następnie należy utworzyć za pomocą SQL Server Management Studio security login dla konta komputera SMSSRV, oraz przypisać mu uprawnienia na poziomie Public do odtworzonej bazy danych SMS. |
3. | Pozostałe uprawnienia zależą już od potrzeb bezpieczeństwa konkretnej implementacji systemu SMS. Ze względu na środowisko klastrowe dalsze uprawnienia powinny opierać się o ręcznie utworzone grupy domenowe, nie zaś lokalne. Grupy te powinny być odpowiednikami automatycznie tworzonych grup lokalnych SMSAdmins oraz SMS_SiteSystemToSQLConnection. |
4. | Należy również zagwarantować docelowym użytkownikom korzystającym z konsoli administracyjnej SMS uprawnienia umożliwiające prawidłową łączność z usługą MSDTC pracującą na klastrze SQL. Najprostszym sposobem na osiągnięcie tego celu jest dodanie ich (jako np. grupy domenowej SMSAdmins) do grupy lokalnej Distributed COM Users na każdym z węzłów klastra SQL. W innym wypadku należy przypisać uprawnienia korzystając z konsoli dcomcnfg na każdym z węzłów klastra. |
Kolejne czynności mają za zadanie przekierowanie lokalizacji bazy danych na adres wirtualnego serwera SQL oraz zainstalowanie na poszczególnych węzłach klastra providera WMI, a także usługi SMSSQLMON. Każdy z poniższych etapów ma określone wymagania, które są niezbędne do prawidłowego zakończenia operacji
Wymagania:
| • | Wszystkie elementy usługi klastrowej aktywne na pierwszym węźle klastra (NODE1) |
| • | Drugi węzeł klastra (NODE2) całkowicie wyłączony |
1. | Korzystając z instalatora SMS wykonać funkcję Reset Site i w polu nazwy serwera SQL wybrać nazwę wirtualnego serwera SQL (CLUSQL) | ||||
2. | Po zakończeniu funkcji Reset należy odczekać kilka minut. W tym czasie usługa zainstaluje usługę monitora, skonfigurowany zostanie również provider usługi WMI. | ||||
3. | Przed przystąpieniem do etapu drugiego należy sprawdzić:
|
Wymagania:
| • | Klaster SQL całkowicie niedostępny dla serwera SMS (co uzyskujemy poprzez jego wyłączenie, albo poprzez odcięcie komunikacji sieciowej) |
1. | Korzystając z instalatora SMS wykonać funkcję Reset Site i w polu nazwy serwera SQL wybrać nazwę pierwotnego serwera (z którego migrowana była baza) na którym wciąż przechowywana jest baza SMS |
2. | Zignorować błędy mówiące o niemożliwości skontaktowania się z serwerem SQL CLUSQL |
3. | Po zakończeniu funkcji Reset należy odczekać kilka minut. W tym czasie usługa zainstaluje usługę monitora, skonfigurowany zostanie również provider usługi WMI. |
Wymagania:
| • | Wszystkie elementy usługi klastrowej aktywne na drugim węźle klastra (NODE2) |
| • | Pierwszy węzeł klastra (NODE1) całkowicie wyłączony |
1. | Korzystając z instalatora SMS wykonać funkcję Reset Site i w polu nazwy serwera SQL wybrać nazwę wirtualnego serwera SQL (CLUSQL) | ||||
2. | Po zakończeniu funkcji Reset należy odczekać kilka minut. W tym czasie usługa zainstaluje usługę monitora, skonfigurowany zostanie również provider usługi WMI. | ||||
3. | Przed przystąpieniem do etapu czwartego, należy sprawdzić:
|
O etapie czwartym migracji będzie można przeczytać w kolejnej części artykułu.
| • |
![]() | Maciej Bogucki (MCSE,MCSE+I,MCT) |