SQL Server na klastrze Windows Server, część 1


SQL Server na klastrze Windows Server, część 1 - Artykuły ekspertów - Baza Wiedzy... Page 1 of 7
|
Kliknij tutaj, aby zainstalować program Silverlight Polska Zmień Wszystkie witryny firmy Microsoft
Szukaj w witrynach Microsoft.com Prześlij kwerend
Strona główna TechNet | Jak zacząć? | Subskrypcja TechNet Plus | Newsletter TechNet | RSS TechNet | Blogi TechNet | Kontakt
Produkty i technologie
Baza wiedzy TechNet > Artykuły ekspertów
Baza wiedzy TechNet
Szkolenia i certyfikacje SQL Server na klastrze Windows Server, część 1
Wirtualne Laboratoria
Opublikowano: 17 sierpnia 2009
Autor: Marcin Goł i Grzegorz Tworek
TechNet Quiz
Centrum Bezpieczeństwa
Zawartość strony
Do pobrania
Wstęp
Wdra\anie
Podstawy budowy SQL Server Przeczytaj tak\e:
oprogramowania
Instalacja klastra
Aktualizacje " SQL Server na klastrze
Windows Server, część 2
A po co ten klaster?
Konferencje i seminaria
Ale czy on naprawdÄ™ pomaga?
Społeczność
Koszty&
Poznaj TechNet
Zainstalowałem klaster, ale co to jest MSDTC ?
TechNet FAQ
W następnej części...
Pomoc techniczna
TechNet na świecie
(j.ang.)
Wstęp
Biblioteka TechNet (j.ang.)
Klaster jest efektywnym i ciekawym mechanizmem zapewniania wysokiej dostępności nawet dla bardzo wymagających i
skomplikowanych usług. W du\ej mierze wynika to ze specyficznej architektury rozwiązania, która powoduje \e jest ono
przezroczyste dla aplikacji klienckich. Innymi wa\nymi argumentami "za" jest automatyczne przełączenie po awarii oraz
mo\liwość tworzenia du\ych środowisk gdzie klastrowane jest wiele usług na wielu maszynach. Jednym z najczęstszych
powodów korzystania z clustering services jest zapewnienie wysokiej dostępności serwerom baz danych  głównie SQL
Server.
Do poczÄ…tku strony
Podstawy budowy SQL Server
Przed opisem architektury klastra warto przypomnieć kilka informacji o budowie SQL Server.
Platforma przetwarzania danych Microsoft SQL Server składa się z 4 głównych serwerów:
Database Engine  silnika bazy danych,
"
Analysis Services  serwera analitycznego,
"
Reporting Services  serwera raportowego,
"
Integration Services  narzędzi ETL.
"
Instalacja ka\dego z powy\szych powoduje powstanie bytu logicznego zwanego instancją, składającego się z wielu
ró\nych elementów, np. w skład instancji silnika bazy danych wchodzą między innymi komponenty:
binaria,
"
systemowe bazy danych (master, tempdb, msdb, model, mssqlsystemresource),
"
bazy danych u\ytkownika,
"
system uprawnień,
"
SQL Server Agent,
"
zasoby umo\liwiajÄ…ce komunikacjÄ™/identyfikacjÄ™ (np. nazwa instancji).
"
Dzięki takiemu systemowi instalacji SQL Server, mo\liwe jest przeprowadzenie wielu odrębnych instalacji na
pojedynczym systemie operacyjnym, a następnie równoległa praca wielu instancji  przy czym ka\da z nich mo\e się
charakteryzować np. przydzielonymi zasobami sprzętowymi, ró\ną wersją pakietu serwisowego. Takie podejście
umo\liwia du\ą elastyczność, ale niesie za sobą te\ pewne niedogodności w postaci walki o zasoby sprzętowe  pamięć,
procesory, dyski czy te\ sieć. Warto dodać, \e w SQL Server 2008 wprowadzono Resource Governor (RG) mający za
zadanie optymalizować wykorzystanie zasobów sprzętowych przydzielonych dla instancji. Głównymi zadaniami
stawianymi przed RG jest zapewnienie \eby jeden lub kilka wątków roboczych nie wysyciły zasobów sprzętowych
instancji (RG pomaga walczyć ze zjawiskami typu: Pani z księgowości uruchomiła raport i cała firma stoi& ); mechanizm
RG jest dostępny w edycji Enterprise SQL Server 2008 i pózniejszych.
PodsumowujÄ…c: instancja to logiczne opakowanie na komponenty SQL Server i to na jej poziomie zarzÄ…dza siÄ™ zasobami
sprzętowymi.
Do poczÄ…tku strony
Instalacja klastra
Dla jasności, warto przybli\yć kilka ogólnych idei i terminów. Najprostszym terminem jest węzeł. Oznacza on po prostu
komputer wchodzący w skład klastra. Klaster jest grupą serwerów, które współdziałają ze sobą w celu utrzymania
działania usługi. Oznacza to, \e je\eli usługa zatrzyma się, to klaster spróbuje ją ponownie uruchomić. Mo\e na tym
samym komputerze a mo\e na innym. Określenie tego nie jest takie zupełnie proste. Wirtualna nazwa to jedna z usług
klastra. Oznacza nazwÄ™ sieciowÄ…, innÄ… ni\ nazwa jakiegokolwiek komputera w sieci. Nazwa ta wykorzystywana jest przez
klientów w celu podłączenia się do usługi. Skoro nie wiadomo, na którym konkretnie komputerze działa usługa, to musi
istnieć jakaś metoda połączenia się... Po to właśnie jest nazwa wirtualna. Klaster wie gdzie jest dana usługa, więc klient
korzystający z nazwy wirtualnej, potrzebną usługę łatwo znajdzie. Dysk współdzielony, to zasób dyskowy (często na
http://www.microsoft.com/poland/technet/article/art0184.mspx 2009-08-31
SQL Server na klastrze Windows Server, część 1 - Artykuły ekspertów - Baza Wiedzy... Page 2 of 7
macierzy), do którego wszystkie węzły klastra mogą się podłączyć. W danej chwili podłączony jest tylko jeden węzeł na
raz, ale klaster mo\e odłączyć ten węzeł i podłączyć inny. Quorum (nazwa jest nieścisła, ale taka się przyjęła) jest
specjalnym dyskiem, którego klaster u\ywa do zarządzania samym klastrem, w szczególności w sytuacjach awaryjnych.
Ostanie opisane tu pojęcie " przeniesienie grupy usług " oznacza, \e usługi wchodzące w skład danej grupy
zatrzymywane są na jednym serwerze, drugi serwer staje się ich właścicielem, po czym usługi są uruchamiane.
Poniewa\ usługi klastra mogą być wewnątrz grupy powiązane wieloma zale\nościami, proces ten mo\e trwać od kilku
sekund do kilku minut, w czasie których usługi nie są w pełni dostępne.
Proces instalacji (tworzenia klastra) wykracza poza ramy niniejszego artykułu, jednak warto go w zarysie przybli\yć.
Przede wszystkim, jak wspomniano wcześniej  potrzebny jest sprzęt. Poza tym, nale\y zainstalować wersję Enterprise
systemu operacyjnego Windows Server. Je\eli na serwerze zainstalowana zostanie rola Failover Clustering, to wśród
narzędzi administracyjnych pojawi się konsola zarządzająca klastrami. Przy pomocy tej konsoli mo\na wykonać jedną z
trzech operacji:
1. Zarządzać ju\ istniejącym klastrem,
2. Zbadać, czy ze wskazanych komputerów mo\na utworzyć klaster,
3. Utworzyć klaster na wskazanych komputerach.
Druga opcja jest szczególnie przydatna, poniewa\ w Windows Server 2008, mechanizm badania został znacząco
poprawiony i podaje administratorowi naprawdę u\yteczne informacje pozwalające na zbudowanie środowiska zgodnego
z regułami sztuki. Mimo, \e klaster pozwoli się zbudować na komputerach nie mających dysków współdzielonych,
podejście takie nie wydaje się rozsądne dla klastra, na którym pracować będzie SQL Server. Dyski warto podłączyć przed
badaniem, poniewa\ dzięki temu zostaną nim objęte, co być mo\e oszczędzi wielu kłopotów.
W systemie Windows Server 2008, klastry budować mo\na równie\ na wersji CORE. Z punktu widzenia niniejszego
artykułu jest to jednak nieistotne, poniewa\ na klastrze takim nie będzie mo\liwe zainstalowanie serwera SQL. Nale\y
równie\ pamiętać, \e bez domeny Active Directory, klaster nie mo\e istnieć i wszystkie węzły muszą być dodane do
domeny.
Mimo, \e nie jest to formalny wymóg, warto aby serwery u\yte do budowy klastra były do siebie jak najbardziej
podobne. Mogą mieć inne dyski czy ilość pamięci, ale architektura procesorów, role systemu, zainstalowane poprawki
czy aplikacje powinny być wszędzie identyczne. W szczególności, serwery (i systemy) x86 powinny być klastrowane z
innymi x86 a x64  tylko z x64. Podobnie sytuacja wyglÄ…da dla platformy IA-64.
Mając ju\ komputery, które przechodzą badanie zgodności z klastrem, nale\y wybrać opcję tworzenia nowego klastra i
wszystko powinno przebiec bez kłopotu. W trakcie tworzenia, kreator proponuje ponowne badanie czy węzły się do
klastra nadają. Nale\y na badanie takie zezwolić. Wiadomo, \e przebiegnie poprawnie, a kosztem niewielkiego
wydłu\enia czasu budowania klastra, administrator zyskuje wsparcie firmy Microsoft. Klastry, które nie zostały
zweryfikowane podczas budowania, wsparcia takiego nie majÄ….
Przeznaczone dla SQL Server dyski podłączone są do jednego z węzłów. Mo\na przed instalacją serwera baz danych
"poprawić" im przypisane litery (przy u\yciu konsoli zarządzającej klastrem) oraz upewnić, się \e quorum znajduje się na
właściwym dysku. Quorum wymaga wprawdzie bardzo niewielkiej przestrzeni (1GB to a\ nadto) ale dysk, na którym się
znajduje w praktyce nie daje się wykorzystać w \adnym innym celu. Dlatego warto dla quorum przeznaczyć dedykowany
niewielki dysk współdzielony, zamiast pozwolić mu "zabrać" przestrzeń przeznaczoną na bazy danych.
Niezagospodarowane dyski przydzielone są do jednego z węzłów. Je\eli z jakiegoś powodu podłączony do nich powinien
być inny węzeł  dysk nale\y przenieść. Niestety klaster nie oferuje mo\liwości przenoszenia samych dysków. Przenosić
mo\na tylko całe grupy. Dlatego, aby przenieść nieprzydzielony dysk, nale\y utworzyć grupę, dodać do niej dysk i
przenieść grupę. Grupę taką mo\na potem skasować a dysk pozostanie podłączony do tego węzła, do którego powinien.
Do poczÄ…tku strony
A po co ten klaster?
Wraz z postępującym rozwojem firm, bardzo często zdarza się, \e koszty przestoju np.: aplikacji klasy ERP poniewa\
"padł serwer baz danych" mogą być liczone w setkach tysięcy czy nawet milionach euro  nawet jeśli czas przestoju
wynosić będzie kilka godzin (czas instalacji + odtworzenia konfiguracji i baz danych).
Aby łatwiej było ustalać warunki umów typu Service Level Agreement (SLA), wprowadzono miarę dostępności usługi,
przy czym dostępność jest opisywana nie tylko przez działanie aplikacji na serwerze, ale np.: uwzględniany jest te\
średni czas odpowiedzi na zapytanie. Biorąc pod uwagę wszystkie warunki dostępności przyjęło się ją mierzyć w
procentach. Poni\sza tabela zawiera wartości dla najczęściej spotykanych opcji:
Dostępność % Niedostępność/rok Niedostępność/miesiąc Niedostępność/tydzień
90 % 36,5 doby 3 doby 16,8 godziny
95 % 18,25 doby 1,5 doby 8,4 godziny
98 % 7,3 doby 14,4 godziny 3,36 godziny
99 % 3,65 doby 7,2 godziny 1,68 godziny
99,5 % 1,83 doby 3,6 godziny 50,4 minuty
99,8 % 17,52 godziny 86,23 minuty 20,16 minuty
99,9 % 8,76 godziny 43,2 minuty 10,1 minuty
99,95 % 4,38 godziny 21,56 minuty 5,04 minuty
99,99 % 52,6 minuty 4,32 minuty 1,01 minuty
99,999 % 5,26 minuty 25,9 sekundy 6,05 sekundy
99,9999 % 31,5 sekundy 2,59 sekundy 0,605 sekundy
http://www.microsoft.com/poland/technet/article/art0184.mspx 2009-08-31
SQL Server na klastrze Windows Server, część 1 - Artykuły ekspertów - Baza Wiedzy... Page 3 of 7
Rysunek 1 Dostępność a czasy przestoju.
Bardzo często spotyka się określanie dostępności 99,9% jako  trzech dziewiątek , 99,99% jako "czterech" itd.. Nale\y
zwrócić uwagę \e im krótszy mo\liwy czas przestoju tym mechanizmy odpowiedzialne za wykrywanie i odpowiedz na
awarię powinny być zautomatyzowane, a komponenty sprzętowe/programowe redundantne. Oczywiste jest równie\, \e
ka\da kolejna "dziewiątka" bardzo mocno podnosi koszt i zło\oność rozwiązania - wią\e się to ze koniecznością
wprowadzana kolejnych mechanizmów zabezpieczających. Samo osiągnięcie dostępności na poziomie 99,999% - nie
le\y tylko w gestii zarządzania redundancją sprzętu ale w du\ej mierze odpowiedniej architektury aplikacji.
Co mo\na zwielokrotniać w typowym środowisku ?
zasilanie (linie zasilajÄ…ce, UPSy, zasilacze w serwerach),
"
klimatyzacje/chłodzenie w serwerowni,
"
karty zapewniające dostęp do zasobów dyskowych,
"
dyski twarde,
"
kontrolery I/O,
"
karty sieciowe/infrastrukturÄ™ sieciowÄ…,
"
Å‚Ä…cza internetowe,
"
pamięć operacyjną,
"
komponenty programowe (np. serwery aplikacyjne).
"
Jak widać, powielać mo\na praktycznie wszystko i wraz z rosnącymi wymogami, wprowadza się kolejne redundantne
komponenty do systemu.
Jednym ze sposobów skracania czasu przestoju jest utrzymywanie blizniaczego sprzętu/środowiska. Jednak\e wymaga
to du\ego nakładu administracyjnego a sam proces odtworzenia musi być często testowany. Częściowym obejściem tego
problemu jest wdro\enie serwera uruchomionego w oparciu o Clustering Services.
MSSQL zainstalowany stand-alone, przyjmuje postać zestawu usług systemowych, które pracując wykorzystują warstwy
ni\sze (sprzętu i systemu operacyjnego), co przedstawiono na poni\szym rysunku:
Rysunek 2: Instalacja stand-alone.
W związku z powy\szym dostępność SQL Server zale\y nie tylko od zarządzania samym RDBMS ale równie\ (być mo\e
głównie) od niezawodności systemu operacyjnego oraz sprzętu. Idea działania klastra polega na uniezale\nieniu się
aplikacji właśnie od warstw poni\ej.
Po instalacji SQL Server na klastrze podział na warstwy wygląda w sposób następujący:
Rysunek 3: SQL Server na klastrze.
Poniewa\ instancja SQL Server zainstalowana jest na współdzielonym zasobie dyskowym (np.: iSCSI, SCSI, SAN), a
biblioteki wymagane do uruchomienia zostały zainstalowane na wybranych węzłach klastra, uzyskano niezale\ność
silnika bazy danych od serwera, na którym został zainstalowany. Co znaczy \e ta sama instancja SQL Server mo\e
pracować na jednym albo na drugim węzle klastra! Dodatkowo dzięki clustering services zyskuje się ciekawe
mechanizmy administracyjne np.: wykrywanie awarii, automatyczne przełączanie czy przypisywanie poszczególnych
usług do konkretnych węzłów (występują tutaj dwa mechanizmy  Preferred owners oraz AntiAffinityClassNames).
Nale\y pamiętać jednak, \e samo wdro\enie klastra nie zapewnia wysokiej dostępności  wa\ne są jeszcze inne
komponenty systemu, procedury utrzymania i aktualizacji oprogramowania.
Warto zwrócić uwagę, \e z punktu widzenia aplikacji łączących się do bazy danych po wdro\eniu klastra, nie jest
wymagana \adna specjalna/dodatkowa funkcjonalność (np.: wersja biblioteki podłączającej się do serwera) ani
dodatkowa konfiguracja (np. wpisanie zapasowych serwerów do konfiguracji)  po prostu jako nazwę serwera bazy
http://www.microsoft.com/poland/technet/article/art0184.mspx 2009-08-31
SQL Server na klastrze Windows Server, część 1 - Artykuły ekspertów - Baza Wiedzy... Page 4 of 7
danych wskazuje się nazwę jaka została nadana klastrowi  a to on ju\ się zajmuje się podłączeniem u\ytkowników do
właściwego węzła!
Inne cechy charakterystyczne klastra:
ochronie podlega cała klastrowana usługa  czyli w przypadku SQL Server będzie nią cała instancja (a nie tylko
"
wydzielone bazy jak w innych rozwiązaniach wysokiej dostępności),
klaster nie chroni przed fizycznym uszkodzeniem plików usługi  klaster chroni przed awarią serwerów/uszkodzeniem
"
systemu operacyjnego,
klaster nie jest odpowiedzią na niedostępność podczas instalacji uaktualnień dla usługi (do takich celów powinno się
"
korzystać z rozwiązań typu NLB)  nie mo\na wykonać instancji patchy SQL Server na jednym a potem na kolejnych
węzłach gdy\ instalacja jest jedna i jest przechowywana na współdzielonym zasobie dyskowym,
przełączenie usługi z węzła X na węzeł Y oznacza jej zatrzymanie, odmontowanie zasobów na węzle X,
"
podmontowanie zasobów oraz uruchomienie na Y  czyli chwilową niedostępność.
Do poczÄ…tku strony
Ale czy on naprawdÄ™ pomaga?
Poni\ej krótki opcji sytuacji A co jeśli &
1. Stan wyjściowy: zainstalowany SQL Server na klastrze 2 węzłowym (A i B), w konfiguracji Active-Passive
2. Sytuacja: węzeł A uległ awarii (w momencie awarii był węzłem aktywnym)
Co siÄ™ dzieje?
3. Clustering services stwierdzają \e węzeł A stał się niedostępny (odbywa się to po przez wzajemne pingowanie się
serwerów  tzw. heart beat)
4. Zasoby podmontowane na serwerze A przepinane są na węzeł B
5. Usługa SQL Server zaczyna być uruchamiana na węzle B
a. Montowane sÄ… bazy systemowe
b. Montowane są bazy danych u\ytkowników
Powy\ej przedstawiono standardowy model wykorzystania klastra dla SQL Server  jeden węzeł przestaje być dostępny,
instancja jest przenoszona na drugi węzeł. Co wa\ne zarówno wykrycie awarii jak i przełączenie wykonują się
automatycznie. Dla administratora pozostaje kwestia jak najszybszego przywrócenia uszkodzonego węzła do \ycia  tak,
aby stale zapewniać wysoką dostępność.
Do poczÄ…tku strony
Koszty&
Niestety  wdro\enie klastra ma te\ swoje minusy  głównie ujawniają się one bilansie kosztowym projektu. Aby
otrzymać poprawnie zbudowany i supportowany klaster SQL Server potrzebne są:
minimum wersja Enterprise Windows Server
"
minimum wersja Standard SQL Server
"
serwery (najlepiej identyczne) spełniające HCL opublikowane dla klastrów (w Windows Server 2003) lub zło\one z
"
elementów posiadających logo i certyfikację dla Windows (w Windows Server 2008)
wydajny zasób współdzielony, na którym będą pracowały bazy danych
"
Uwa\ny czytelnik zwrócił na pewno uwagę, \e w takiej konfiguracji część zasobów jest niewykorzystywana  tzn.: np. w
przypadku 2 węzłowego klastra, jeden serwer będzie węzłem aktywnym (ang. active)  będzie obsługiwał \ądania
u\ytkowników, a drugi będzie pasywny (ang. passive). Zgodnie z tą nomenklaturą dwuwęzłowy klaster z jedną instancją
SQL mo\na określić jako: Active-Passive, co oznacza \e jest jedna instancja SQL Server i raz pracuje na jednym a raz na
drugim węzle. śeby klaster miał sens maszyny pasywne muszą pozostać włączone i sprawne, więc do ogólnego
rachunku projektu nale\y doliczyć jeszcze koszty utrzymania (administracja, energia elektryczna, chłodzenie, gwarancja
itd)&
Jak udowodniono powy\ej, klastry mogą znacząco zwiększyć dostępność serwerów baz danych, jednak\e są kosztowne.
Mając w pamięci mo\liwości konfiguracyjne - przypisanie hostowanej usługi do wybranych węzłów łatwo znalezć
rozwiązanie w postaci klastra Active-Active, czyli klastra, w którym wszystkie węzły są obcią\one. Taką instalację
przedstawiono na rysunku poni\ej:
http://www.microsoft.com/poland/technet/article/art0184.mspx 2009-08-31
SQL Server na klastrze Windows Server, część 1 - Artykuły ekspertów - Baza Wiedzy... Page 5 of 7
Rysunek 4: Klaster Active-Active serwera MS SQL Server.
Oczywiście drugą usługą nie musi być drugi SQL Server  mo\e to być dowolna inna aplikacja, często stosowanym
rozwiązaniem jest uruchamianie na jednym węzle klastra silnika relacyjnego, a na drugim serwera analitycznego. Ale co
w sytuacji kiedy SQL Server z węzła A musi wystartować na obcią\onym węzle B ?
Stan wyjściowy: zainstalowany SQL Server na klastrze dwuwęzłowym (węzły A i B), w konfiguracji Active- Active,
"
usługi: MSSQL#A, MSSQL#B; MSSQL#B pracuje wykorzystując 100% zasobów pamięci węzła B
Sytuacja: węzeł A uległ awarii;
"
Poniewa\ MSSQL#A musi zostać uruchomiony na węzle B, proces uruchamiając prosi o przydzielenie zasobów  alokuje
początkowo pewną (małą) ilość RAM, pomimo \e usługa prosi o więcej pamięci  nie otrzyma jej gdy\ MSSQL#B alokuje
większość dostępnej pamięci i nie przejawia chęci \eby ją oddać & W związku z tym, nale\y się liczyć z niemo\nością
korzystania z baz danych pracujących na instancji MSSQL#A& . . SQL Server będzie pracował ale będzie to robił
odpowiednio do zasobów jakimi dysponuje.
Znane są w przyrodzie wypadki, \e druga instancja chętnie będzie oddawała pamięć  w praktyce jednak jest to mało
realne, a co więcej takie zachowanie przy złej konfiguracji mo\e doprowadzić do wygłodzenia i znaczącego spadku
wydajności instancji oddającej pamięć.
Niestety, problemy opisane powy\ej są częstym problemem tego typu instalacji  SQL Server bardzo niechętnie oddaje
przydzieloną pamięć RAM, i o ile zasoby takie jak procesory czy sieć będą rozdzielane przez systemowe schedulery, o
tyle z pamięcią mo\e być problem. Pomocną okazać się mo\e procedura sp_configure  uruchomiona z opcja 'max
server memory (MB)', która pozwala określić pamięć dla puli buforów. Niestety  pomimo obecności w nazwie "max
server memory" nie oznacza to, \e SQL Server nie wykroczy poza wskazaną ilość pamięci ni\ wskazane w tym
parametrze  jest to związane z pozostałymi elementami SQL Server  tzw. MemToLeave.
Jaką wartość nale\y ustawić zatem jako max server memory ? Mo\na o tym przeczytać tutaj i tutaj. W skrócie algorytm
wygląda następująco:
[max server memory] = [RAM]  [system operacyjny]  [wÄ…tki robocze SQL Server]  [linked servery itp]  [inne
aplikacje]
system operacyjny powinien dostać ok 2GB
"
wątki robocze  ka\dy wątek w zale\ności od typu maszyny zabiera ró\ną ilość pamięci (x86  0.5MB, x86-64  2MB,
"
IA64  4MB); liczba wątków jest określana na podstawie tabeli (chyba, \e administrator zmodyfikował to przy pomocy
sp_configure 'max worker threads'):
Liczba procesorów 32bit 64bit
1-4 256 512
5-8 288 576
9-16 352 704
17-32 480 960
Rysunek 5. Liczbą wątków roboczych w SQL Server.
inne części MemToLeave  linked servery, xp, com  ok 1GB
"
inne aplikacje  w zale\ności od potrzeb  zwykle nie potrzebują więcej ni\ 3GB (chyba, \e jest to inna instancja SQL
"
Server)
Przykład:
CPU: 8, RAM 32GB, x64 (x86-64, np.: Intel EMT64 czy AMD64), serwer WWW potrzebuje 0,5GB
max server server memory = 32  2  ~1,1  1  0,5GB=> ~27,5GB
Tak więc, znając powy\szy algorytm oraz zapotrzebowanie na pamięć zainstalowanych aplikacji, łatwo określić max
server memory i przypisać je odpowiednio klastrowanym instancjom.
Warto przeanalizować te sytuacje ponownie (tym razem dla instancji z ograniczoną pamięcią jaką mogą zaalokować):
http://www.microsoft.com/poland/technet/article/art0184.mspx 2009-08-31
SQL Server na klastrze Windows Server, część 1 - Artykuły ekspertów - Baza Wiedzy... Page 6 of 7
Stan wyjściowy: zainstalowany SQL Server na klastrze dwuwęzłowym (węzły A i B), w konfiguracji Active- Active,
"
usługi: MSSQL#A, MSSQL#B; ustawiono parametry dotyczące pamięci zgodnie z: min server memory 35% RAM, max
server memory 45% RAM dla ka\dej z usług
Sytuacja: węzeł A uległ awarii;
"
MSSQL#A jest uruchamiana na węzle B  poniewa\ MSSQL#B ma ograniczoną pamięć RAM jaką mo\e wykorzystać
usługa #A uruchamiana jest bez problemu; jednak\e czas odpowiedzi do u\ytkowników w dalszym ciągu jest ni\szy gdy\
usługi muszą współdzielić procesory, sieć oraz zasoby systemu.
Generalna zasada dla klastrów dwuwęzłowych: suma pamięci przydzielonej instancjom powinna być ni\sza ni\
pamięć zainstalowana w węzle & (i jest to zalecenie firmy Microsoft). W przypadku klastrów o większej liczbie
węzłów mo\na próbować rozrzucać instancje na odpowiednie dobrane maszyny przez parametr dzięki wspomnianym
wy\ej mechanizmom.
Rozwa\ając klaster Active-Active nale\y uwzględnić zakup większych maszyn ni\ w rzeczywistości są wymagane (w
szczególności warto zakupić więcej pamięci). Nale\y zwrócić uwagę na fakt, \e serwer mający dwukrotnie większą ilość
pamięci i procesorów nie jest dwukrotnie szybszy& ale często jest dwukrotnie dro\szy (przy du\ych maszynach ró\nice
w kosztach mogą być trudne do zaakceptowania). Sposobem obejścia problemu kosztów przy du\ych maszynach mo\e
być zakup 3 serwerów swoimi mo\liwościami lepiej dopasowanymi do instancji  oraz budowa na nich klastra Active-
Active-Passive (maksymalna liczba węzłów dla SQL Server to 16, dla Windows 32).
Kontynuując temat rozwiązań dwuwęzłowych, nale\y rozwa\yć kwestię failbacku, czyli powrotu do poprzedniego
przydziału usług do węzłów klastra, operacja ta charakteryzuje się:
Zalety:
dzięki ponownemu rozdziałowi usług pomiędzy węzły klastra polepszy się wydajność usług.
"
Wady:
zarówno failover jak i failback oznaczają przerwę w działaniu usługi  co z kolei oznacza chwilową przerwę w dostępie
"
do bazy danych,
jeśli zostanie przeprowadzony na niestabilną maszynę wówczas mogą wystąpić kolejne przestoje związane z kolejnymi
"
przełączeniami.
W związku z tym nale\y uwa\ać, \e failback powinien być przeprowadzony jak najszybciej po dokładnej weryfikacji
serwera z którego usługa wcześniej uciekła. W sytuacji idealnej operacja powinna być nadzorowana przez administratora
i przeprowadzona w okresie okna serwisowego (lub chocia\ najmniejszej aktywności u\ytkowników).
Do poczÄ…tku strony
Zainstalowałem klaster, ale co to jest MSDTC ?
MSDTC  czyli Microsoft Distributed Transaction Coordinator  jest komponentem Windows Server i zapewnia
koordynowanie transakcji pomiędzy zdalnymi systemami. Transakcji MSDTC są zgodne z zasadami ACID  są atomowe
(wszystko albo nic), spójne  przenoszą dane z jednego do drugiego spójnego stanu, odizolowane  dopóki transakcja
nie zostanie potwierdzona jej zmiany nie są widoczne dla innych u\ytkowników, trwałe  zmiany dokonywane w
transakcji są trwałe.
W jaki sposób działa MSDTC? Koordynator swoją pracę opiera na menad\erach transakcji oraz menad\erach zasobów
oraz dwufazowym potwierdzaniu, przedstawiono to na rysunku poni\ej:
Rysunek 6: MS DTC w akcji.
Zasada działania MS DTC:
Klient komunikuje się ze menad\erem transakcji i prosi o rozpoczęcie transakcji
"
Klient dokonuje zmian
"
Klient prosi o zakończenie transakcji
"
a. Menad\er transakcji pyta menad\erów zasobów czy są gotowi potwierdzić transakcje
i. Jeśli wszyscy menad\erowie zasobów potwierdzili, transakcja jest zatwierdzana
ii. Jeśli choć jeden z menad\erów nie potwierdził transakcji, cała transakcja jest anulowana na wszystkich serwerach
uczestniczÄ…cych w transakcji
Dzięki takim mo\liwościom, mo\na budować zło\one systemy biznesowe, które w jednej transakcji dokonają zmian w
wielu systemach (np. zmiana w bazie danych i dodanie wiadomości do kolejki MSMQ), a w razie wystąpienia problemów
http://www.microsoft.com/poland/technet/article/art0184.mspx 2009-08-31
SQL Server na klastrze Windows Server, część 1 - Artykuły ekspertów - Baza Wiedzy... Page 7 of 7
zmiany nie zostaną zachowane i dane pozostaną spójne.
Ale po co MS DTC w klastrze baz danych? Na wszelki wypadek. Tak to nie był \art, sam SQL Server nie potrzebuje MS
DTC i świetnie radzi sobie bez niego, ale jako \e instalacja MS DTC to chwila, a mo\e okazać się potrzebne w przyszłości
to najlepsze praktyki zalecają instalację MS DTC. Kilka wa\nych uwag  w Windows Server 2008, MS DTC ewoluowało i
umo\liwia uruchomienie więcej ni\ 1 instancji MS DTC w klastrze.
Do poczÄ…tku strony
W następnej części...
W drugiej części opisane zostaną kroki jakie nale\y podjąć aby poprawnie zainstalować SQL Server 2008 na klastrze.
SQL Server na klastrze Windows Server, część 2
"
Marcin Goł
Architekt baz danych, ISCG
Aktualnie pracuje w ISCG, gdzie projektuje i optymalizuje bazy danych; w swojej pracy głównie
wykorzystuje technologie Microsoft SQL Server. Wcześniej brał udział w wielu wdro\eniach systemów
OSS dla sektora telekomunikacyjnego oraz pracował jako administrator środowiska opartego o
technologiÄ™ Microsoft. Lider Polish SQL Server User Group (PLSSUG); aktywny u\ytkownik portalu
WSS.pl, prowadzi blog SQL Server. Specjalizuje się w analizie i rozwiązywaniu problemów
wydajnościowych. W styczniu 2009 został nagrodzony tytułem Most Valuable Professional w kategorii
SQL, ponadto posiada certyfikaty firmy Microsoft, min.: MCITP: Database Administrator.
Grzegorz Tworek (Konsultant ISCG, MVP)
In\ynier systemowy, komputerowiec w drugim pokoleniu. Od wielu lat aktywnie promuje idee zwiÄ…zane
z bezpieczeństwem informatyki, zwłaszcza w powiązaniu z systemami Microsoft. Autor artykułów i
ksią\ek na temat security, prelegent na rozmaitych konferencjach. Aktywnie uczestniczy w działaniach
SEClub. Równie du\y zapał do tworzenia jak i do psucia systemów sprawia, \e w projektach najchętniej
uczestniczy jako audytor. W lipcu 2007 został nagrodzony tytułem Most Valuable Professional w
kategorii Enterprise Security. Prowadzi polski blog TechNet.
Do poczÄ…tku strony
Wersja do wydruku Wyślij informacje Dodaj do ulubionych
Jak oceniłbyś u\yteczność tych informacji?
1 2 3 4 5
ZÅ‚y Znakomity
n n n n n
m m m m m
l l l l l
k k k k k
j j j j j
Powiedz, dlaczego oceniłeś te informacje właśnie tak .(opcjonalne)
5
5
6
6
Prześlij
Zmień Swój Profil
©2009 Microsoft Corporation. Wszelkie prawa zastrze\one. Kontakt z nami | Zasady u\ytkowania witryny microsoft.com | Znaki towarowe |
Ochrona prywatności
http://www.microsoft.com/poland/technet/article/art0184.mspx 2009-08-31


Wyszukiwarka

Podobne podstrony:
SQL Server na klastrze Windows Server, część 2
SQL Server 2012 Tutorials Analysis Services Tabular Modeling
Interbase vs SQL Server
Zapytania 10 ćwiczenia w SQL SERVER
SQL Server 2012
MS SQL Server 6 5 1
SQL Server 2012 Tutorials Writing Transact SQL Statements
MS SQL Server 6 5 ZarzÄ…dzanie indeksowaniem danych i kluczami
MS SQL Server 6 5 Bezpieczeństwo w SQL Server
MS SQL Server 6 5 Bezpieczeństwo w SQL Server
SQL Server 2005 Zaawansowane rozwiazania biznesowe
SQL Server 2005 Programowanie od podstaw
MS SQL Server 6 5 Zarządzanie i tworzenie widoków

więcej podobnych podstron