Mechanizmy zapewnienia wysokiej dostępności
Transkrypt
Mechanizmy zapewnienia wysokiej dostępności
Materiały konferencyjne Bazy Danych i Business Intelligence Mechanizmy zapewnienia wysokiej dostępności aplikacji wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL Dr inż. Jacek Markus Warszawska Wyższa Szkoła Informatyki 1 [email protected] Mechanizmy zapewnienia wysokiej dostępności aplikacji Mechanizmy zapewnienia wysokiej dostępności wielowarstwowych korzystających z relacyjnych baz danychaplikacji Microsoft SQL. wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL.with relational databases High availability in multi-layer application Microsoft SQL. High availabilityDrininż.multi-layer application with relational dataJacek Markus ([email protected]) Warszawska Wyższa Szkoła Informatyki bases Microsoft SQL. Streszczenie: Dostępność aplikacji firmowych jest krytyczna, a ich niedostępność może powodować straty zarówno finansowe jak i prestiżu, które w wielu przypadkach mogą nawet doprowadzić firmy. Dostępność aplikacji firmowychdo jestupadku krytyczna, a ich niedostępność może powodować straty zarówno finansowe jak i prestiStreszczenie żu, które w wielu przypadkach mogą nawet doprowadzić do upadku firmy. Słowa kluczowe: aplikacje wielowarstwowe, wysoka dostępność, przetwarzanie w Słowa kluczowe: wielowarstwowe, wysoka dostępność, przetwarzanie w chmurze, replikacja, mirroring, chmurze,aplikacje replikacja, mirroring, always-on, Microsoft SQL always-on, Microsoft SQL Abstract: High availability of corporate applications is critical, and their unavailability can Abstract cause loss of both financial and prestige, which in many cases may even lead to the collapse of the company. High availability of corporate applications is critical, and their unavailability can cause loss of both financial and prestige, which inKeywords: many cases may even lead to application the collapse of ,thehigh company. multi-layer availability, cloud computing, replication, mirroring, always-on, Microsoft SQL Keywords: multi-layer application , high availability, cloud computing, replication, mirroring, always-on, Microsoft SQL 1. Aplikacje wielowarstwowe. Większość obecnie tworzonych 1. Aplikacje wielowarstwowe. aplikacji biznesowych ma budowę wielowarstwową. Większość obecnie tworzonych aplikacji biznesowych ma budowę wielowarstwową. Najbardziej zewnętrzna warstwa prezentacji bardzo często wykorzystuje Najbardziej zewnętrzna warstwa prezentacji bardzo często wykorzystuje technologię co pozwala technologię webową, co pozwala wykorzystać w wielu przypadkach webową, jako klienta wykorzystać w wielu przypadkach jako internetową. klienta standardową przeglądarkę internetową. Warstwa aplikacji standardową przeglądarkę Warstwa aplikacji przetwarzająca dane przetwarzająca dane biznesowe w mniejszych systemach bywa w dużym stopniu zintegrowana z warstwą biznesowe w mniejszych systemach bywa w dużym stopniu zintegrowana warstwąprezentacji i warstwą bazodanową dzięki wykorzystaniu procedur składowanych i obiektów CLR. prezentacji i warstwą bazodanową wyzwalaczy, dzięki wykorzystaniu wyzwalaczy, procedur składowanych i obiektów CLR. Klient – przeglądarka internetowa Klient – Klient – przeglądarka Klient – przeglądarka internetowa Klient – przeglądarka internetowa Klient – przeglądarka internetowa Klient – przeglądarka internetowa Klient – przeglądarka internetowa Klient – przeglądarka internetowa Klient – przeglądarka internetowa Klient – przeglądarka internetowa Klient – przeglądarka internetowa przeglądarka internetowa internetowa Warstwa prezentacji – serwer WWW Rys.1. Architektura aplikacji wielowarstwowej Rys.1. Architektura aplikacji wielowarstwowej Baza danychwarstwa bazodaniowa 106 Bazy Danych i Business Intelligence Mechanizmy zapewnienia wysokiej dostępności aplikacji wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL W systemach biznesowych krytyczna jest warstwa bazodanowa, której spójność i bezpieczeństwo przechowywanych danych jest najwyższym priorytetem. Dane te muszą być chronione przed nieautoryzowanym dostępem przy jednoczesnym zapewnieniu ich pełnej dostępności. 2. Wysoka dostępność warstwy prezentacji i aplikacji. Większość mechanizmów zapewnienia wysokiej dostępności jest związane z wprowadzeniem nadmiarowości prowadzących do wyeliminowania punktów pojedynczej awarii. W sytuacji jeśli dostępność aplikacji zależy od jednego dysku w serwerze, jednego zasilacza, jednego procesora itp., awaria pojedynczego elementu doprowadza do braku dostępności aplikacji. Podniesienie prawdopodobieństwa bezawaryjnej pracy komponentu na wyższy poziom powoduje często logarytmiczny wzrost kosztów wdrożenia i nigdy nie pozwala na pełną gwarancję niezawodności. Wprowadzenie nadmiarowości pozwala często uzyskać obniżenie prawdopodobieństwa niedostępności na wyższym poziomie i często niższym kosztem niż podnoszenie jakości składowych ponad pewien poziom. W przypadku dysków wprowadza się macierze dyskowe z wykorzystaniem różnych poziomów RAID, które związane z nadmiarowymi dyskami, pozwalają na dalszą pracę systemu w razie awarii jednego z dysku, a w niektórych konfiguracjach nawet kilku dysków do czasu wymiany uszkodzonego dysku. W składnicach danych wprowadza się dodatkowo pulę dysków awaryjnych, które automatycznie zastępują uszkodzone dyski. Należy również zwrócić uwagę, że nie zawsze wprowadzenie dwóch komponentów pozwala na wyeliminowanie pojedynczego punktu awarii np. zamontowanie w serwerze o poborze mocy 1KW dwóch zasilaczy o mocy 0,75 KW, awaria jednego z nich spowoduje, że jeden zasilacz nie dostarczy komponentom serwera odpowiedniego zasilania. Analogicznie wprowadzenie dwóch linii dostępu do Internetu, gdy światłowody są poprowadzone obok siebie do dostawców internetu w przypadku uszkodzenia jednego ze światłowodów np. w czasie pracy koparki łączy się z bardzo wysokim prawdopodobieństwem awarii drugiego. Pierwszym etapem zapewnienia wysokiej dostępności jest wyeliminowanie pojedynczych punktów awarii. Istnieje wiele mechanizmów zapewnienia wysokiej dostępności warstwy biznesowej i warstwy prezentacji z wykorzystaniem nadmiarowych serwerów. Najłatwiejszym w implementacji jest wykorzystanie DNS round robin (RRDNS). Polega na utworzeniu na serwerze DNS kilku rekordów DNS wskazujących dla tej samej nazwy hosta kilka rekordów DNS. Lista tych rekordów jest przesyłana po otrzymaniu zapytania posortowana w określonej kolejności. Kolejne zapytanie otrzymuję powyższą listę ze zmienioną kolejnością: pierwszy rekord z poprzed3 zapytania jest przesortowany na koniec listy. niego Wynik zapytania z wykorzystaniem round robin Rys.2. Wynik zapytania zRys.2. wykorzystaniem round robin Dodatkowo Dodatkowomożna możnaużyć użyćnetmask netmaskordering orderingpolegającego polegającego na na grupowaniu grupowaniu adresów adresów zz jednej jednej klasy i sortowaklasy i sortowaniu w obrębie grupy. Dzięki temu klient otrzymuje na „górze listy” adresy niu w obrębie grupy. Dzięki temu klient otrzymuje na „górze listy” adresy z „bliższego” adresu sieciowego. z „bliższego” adresu sieciowego. Rys.2. Wynik zapytania z wykorzystaniem round robin Mechanizmy zapewnienia wysokiej dostępności aplikacji Dodatkowo można użyć netmask ordering polegającego na grupowaniu adresów z jednej wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL Bazy Danych i Business Intelligence klasy i sortowaniu w obrębie grupy. Dzięki temu klient otrzymuje na „górze listy” adresy z „bliższego” adresu sieciowego. 107 Rys.3. Wynik zapytania z wykorzystaniem round robin i netmask Rys.3. Wynik zapytania z wykorzystaniem roundordering robin i netmask ordering RRDNS pozwala na rozłożenie obciążenia na wiele serwerów, jednak awaria jednego z RRDNS4powoduje, pozwala nażerozłożenie obciążenia na wiele serwerów, serwerów część zapytań trafia na niedziałający serwer. jednak awaria jednego z serwerów powoduje, że część zapytań trafia narozłożyć niedziałający serwer. Mechanizmem DNS pozwalającym zapytania na wiele serwerów z równoczesną Mechanizmem DNS pozwalającym rozłożyć zapytania wiele serwerów z równoczesną obsługa obsługa awarii jednego lub kilku z nich jest użycie dnS na Load Balancing (dnSLB). Mechanizm tenz nich wykorzystuje SrVBalancing do zdefiniowania preferencji rozłożenia awarii jednego lub kilku jest użycierekordy DNS Load (DNSLB). Mechanizm ten wykoobciążenia na wiele serwerów. Jedną z bardziej znanych usług korzystających z tego rzystuje rekordy SRV do zdefiniowania preferencji rozłożenia obciążenia na wiele serwerów. Jedną mechanizmu jest usługa Active Direktory. Z uproszczonej wersji tego mechanizmu z bardziej znanych usług korzystających z tego mechanizmu jest usługa Active Direktory. Z uproszczoopartego o rekordy MX korzysta również usługa również SMTP, usługa z którejSMTP, korzystają wszystkie nej wersji tego mechanizmu opartego o rekordy MX korzysta z której korzystają współczesne i popularne systemy pocztowe (są oczywiście rozwiązania niszowe, wszystkie współczesne i popularne systemy pocztowe (są oczywiście rozwiązania niszowe, którektóre wykowykorzystują inne mechanizmy). Rekord SRV odwołuje się do odpowiedniego hosta rzystują inne mechanizmy). Rekord SRV odwołuje się do odpowiedniego hosta poprzez definicję jego poprzez definicję jego IP lub wskazanie rekordu A albo rekordu CNAME. Rekord SRV IP lub wskazanie rekordu A albo rekordu CNAME. Rekord SRV wskazuje usługę protokół TCP, UDP, wskazuje usługę protokół TCP, UDP, TLS… i port na którym usługa pracuje na TLS… i port na którym usługa pracuje na podstawie zarejestrowanych mapowań nazwy usługi oraz podstawie zarejestrowanych mapowań nazwy usługi oraz aliasów jej nazwy na port w aliasów jejpliku nazwy na port w pliku %systemroot%\System32\drivers\etc\services. %systemroot%\System32\drivers\etc\services. Rys.4. Rekordy SRV Rys.4. Rekordy SRV Kolejność przesortowania rekordów określa priorytet, który grupuje rekordy, czyli rekord Kolejność przesortowania rekordów określa priorytet, który grupuje rekordy, czyli rekord o prioryteo priorytecie 0 obsługuje cały ruch, jeśli wszystkie serwery wskazane przez rekordy o cie 0 obsługuje cały ruch, jeśli wszystkie serwery wskazane przez rekordy o priorytecie O są niedostęppriorytecie O są niedostępne, aplikacja odpytuje serwery usługi wskazane przez rekordy ne, aplikacja odpytuje serwery usługi wskazane przez rekordy o priorytecie 1… Waga określa proporcje o priorytecie 1… Waga określa proporcje rozłożenia ruchu pomiędzy serwery o tym rozłożenia samym ruchu pomiędzy serwery o tym samym priorytecie. priorytecie. Wykorzystanie DNSLB nie tylko do rozłożenia na wiele serwerów, ale również z obsługą Wykorzystanie DNSLB nie tylkoobciążenia do rozłożenia obciążenia na wiele serwerów, ale również z obsługą awarii jednego lub kilku z nich jest związane z możliwościami aplikacji klienckich, które po przekroczeniu czasu oczekiwania odpowiedzi z serwerów wskazanych przez pierwszy rekord z listu odpytują kolejny oraz wbudowaniem w Kolejność przesortowania rekordów określa priorytet, który grupuje rekordy, czyli r o priorytecie 0 obsługuje cały ruch, jeśli wszystkie serwery wskazane przez reko priorytecie O są niedostępne, aplikacja odpytuje serwery usługi wskazane przez rek Mechanizmy zapewnienia wysokiej dostępności aplikacji o priorytecie wielowarstwowych 1… Waga określa proporcje rozłożenia ruchu pomiędzy serwery o korzystających z relacyjnych baz danych Microsoft SQL Bazy Danych i Business Intelligence 108 samym priorytecie. Wykorzystanie DNSLB nie tylko do rozłożenia obciążenia na wiele serwerów awarii jednego lub kilku z nich jest związane z możliwościami klienckich, po przekrorównież z obsługą awarii jednegoaplikacji lub kilku z nich które jest związane z możliwoś czeniu czasu oczekiwania odpowiedzi z serwerów wskazanych przez pierwszy rekord z listu odpytują aplikacji klienckich, które po przekroczeniu czasu oczekiwania odpowiedzi z serw kolejny oraz wbudowaniem w aplikację mechanizmów automatycznego wznawiania Choć wiele wskazanych przez pierwszy rekord z listu odpytują sesji. kolejny oraz wbudowanie aplikacji klienckich oraz usługaplikację aplikacyjnych obsługuje mechanizm DNSLB, to obecnie popularne przemechanizmów automatycznego wznawiania sesji. Choć wiele apl glądarki internetowe go nie obsługują. klienckich oraz usług aplikacyjnych obsługuje mechanizm DNSLB, to obecnie popu Alternatywą jest użycie. Wprzeglądarki klastrze NLB jest kilka go hostów, które korzystają ze wspólnej wirtualnej internetowe nie obsługują. Alternatywą jest użycie network Load Balancing (nLB). W klastrze NLB karty sieciowej. kilka hostów, które korzystają ze wspólnej wirtualnej karty sieciowej. Rys.5. Wykorzystanie NLB Rys.5. Wykorzystanie NLB Zaletą rozwiązanie jest taki sam adres IP na wszystkich hostach w klastrz Zaletą rozwiązanie jest taki sam adres IP na wszystkich hostach w klastrze, co uniezależnia rówuniezależnia równoważenie obciążenia od usługi DNS, a obsługę awarii jedne noważenie obciążenia od usługi DNS, a obsługę awarii jednego z hostów w klastrze NLB od aplikahostów w klastrze NLB od aplikacji klienckiej. Rozwiązanie pomimo, że jest stosun cji klienckiej. Rozwiązanie pomimo, że jest stosunkowo tanie w implementacji (np. wersje serwerowe tanie w implementacji (np. wersje serwerowe Windows poczynając od 2003 Stand 5 Standard i Web Edition go obslugująm jak również jego obsługa może Windows poczynając od 2003 Web Edition go obslugująm jak również jego obsługa może być wkompilowana w być wkompilowana w jądro dystrybucji dystrybucji Linux) Przy Linux) ii nie niewymaga wymagazwykle zwykleinwestycji inwestycjiwwdrogi drogisprzęt. sprzęt. Przy konfig konfiguracji NLB należy pamiętać, że wszystkie korzystają z wirtualnej sieciowekarty o adresie NLB należy pamiętać,hosty że wszystkie hosty korzystająkarty z wirtualnej sieciowe o adr MAC i IP wspólnym dla całego NLB. Dlatego należy pamiętać odpowiedniej MAC iklastra IP wspólnym dla całego klastra NLB.oDlatego należy konfiguracji pamiętać o odpowied przełącznika, aby do wszystkich portów obsługujących hosty z klastra NLB przypisać statyczniehosty MACz klastra N konfiguracji przełącznika, aby do wszystkich portów obsługujących adres klastra, w przeciwnym przypadkustatycznie przełącznik automatycznie zapamięta port,przypadku z którego przełącz przypisać MAC adres klastra, w pierwszy przeciwnym otrzymał odpowiedź i cały automatycznie ruch będzie kierowany tylko na jednego z hostów w klastrze NLB. Klaster zapamięta pierwszy port, z którego otrzymał odpowiedź i cały ruch będ NLB skonfigurowany w trybie unicast korzysta z adresu MAC w postaci 02:BF: + szesnastkowo zapikierowany tylko na jednego z hostów w klastrze NLB. Klaster NLB skonfigurowan sany adres IP klastra NLB. trybie unicast korzysta z adresu MAC w postaci 02:BF: + szesnastkowo zapisany ad IP klastra NLB. Rys.6. Ustawienie klastra NLB - równoważenia sieciowego Rys.6. Ustawienie klastra NLB - równoważenia obciążeniaobciążenia sieciowego W trybie unicast jest wymagana dodatkowa karta sieciowa w każdym z hostów klastra W trybie unicast jest wymagana dodatkowa karta sieciowa w każdym z hostów klastra do komunikakomunikacji pomiędzy hostami niezbędnej do negocjacji, który host ma obsłu cji pomiędzy hostami niezbędnej do negocjacji, który host ma obsłużyć przychodzące połączenie oraz przychodzące połączenie oraz wykrycie hosta, który uległ awarii. W przypadku br wykrycie hosta, który uległ awarii. W przypadku braku możliwości zestawienia komunikacji pomiędzy możliwości zestawienia komunikacji pomiędzy hostami klastra NLB na dodatkow hostami klastra NLB na dodatkowych sieciowych, można użyć trybu multicast, gdzie adres MAC sklastrowa interfejsachinterfejsach sieciowych, można użyć trybu multicast, gdzie MAC adres sklastrowanej mechanizmem NLB MAC karty sieciowej jest ukrywany, wirtualna karta mechanizmem NLBadres MAC adres karty nie sieciowej nie jestaukrywany, a wirtualna k sieciowa NLB ma adres z prefiksem 03:BF. sieciowa NLB ma adres z prefiksem 03:BF. komunikacji pomiędzy hostami niezbędnej do negocjacji, który host ma obsłuży przychodzące połączenie oraz wykrycie hosta, który uległ awarii. W przypadku brak możliwości zestawienia komunikacji pomiędzy hostami klastra NLB na dodatkowyc Mechanizmy zapewnienia wysokiej dostępności aplikacji interfejsach sieciowych, można użyć trybuBazy multicast, gdzie MAC adres sklastrowane wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL Danych i Business Intelligence 109 mechanizmem NLB MAC adres karty sieciowej nie jest ukrywany, a wirtualna kart sieciowa NLB ma adres z prefiksem 03:BF. 6 Rys.7. Ustawienie portu Rys.7.roli Ustawienie roli portu W trybie host preferencję użycia serwerów w klastrze określają prio W trybie single host preferencję użyciasingle serwerów w klastrze NLB określają priorytety. DlaNLB danego Dla danego protokołu, portu TCP/UDP lub zakresu portów cały ruch obsługuje protokołu, portu TCP/UDP lub zakresu portów cały ruch obsługuje host o najniższym priorytecie, w ranajniższym priorytecie, w razie jego awarii ruch obsługuje aktywny host o ak zie jego awarii ruch obsługuje aktywny host o aktualnie najniższym priorytecie. Jeśli zdefiniujemy tryb najniższym priorytecie. Jeśli zdefiniujemy tryb pracy Multiple host (najc pracy Multiple host (najczęściej stosowany, ponieważ pozwala na dynamiczne równoważenie obciążestosowany, ponieważ pozwala na dynamiczne równoważenie obciążenie) z nie) zamiast priorytetu definiujemy wagę,definiujemy ruch jest rozkładany na jest wszystkie aktywne hosty w klastrze priorytetu wagę, ruch rozkładany na wszystkie aktywne hosty w k NLB proporcjonalnie do przypisanej do hosta wagi. do przypisanej do hosta wagi. NLB proporcjonalnie Rys.8. WagaRys.8. portu Waga portu Domyślnie dla trybu Multiple host jest ustawienie Equal, czyli równomierne roz Domyślnie dla trybu Multiple host jest ustawienie Equal, czyli równomierne rozłożenie sesji pomięsesji pomiędzy serwery w klastrze NLB. Przychodzące połączenie obsługuje dzy serwery w klastrze NLB. Przychodzące połączenie obsługuje host w klastrze, który „zadeklaruje” klastrze, który „zadeklaruje” najniższy koszt przyjęcia połączenia. Trochę jak w najniższy koszt przyjęcia połączenia. Trochę jak w życiu, dodatkową pracę otrzymuje zwykle ten, kto dodatkową pracę otrzymuje zwykle ten, kto najmniej broni się przed jej przy najmniej broni się przed jej przyjęciem (najniższy koszt przyjęcia). (najniższy koszt przyjęcia). W przypadku równoważenia obciążenia na podstawie wag problemem mogłyby protokoły W przypadku równoważenia obciążenia na być podstawie wagz zaproblemem m bezpieczeniem transmisji poprzez SSL lub TLS (zwłaszcza wielosesyjne jak http, https). W trakcie negobyć protokoły z zabezpieczeniem transmisji poprzez SSL lub TLS (zw cjowania połączenia klient otrzymuje od serwera wykorzystuje do zaszyfrowania wielosesyjne jak klucz http, publiczny, https). W który trakcie negocjowania połączenia klient otrzym symetrycznego klucza sesji. Zaszyfrowany kluczem publicznym symetryczny klucz sesji jest wysyłany serwera klucz publiczny, który wykorzystuje do zaszyfrowania symetrycznego do serwera, który za pomocą klucza prywatnego dokonuje deszyfracji symetrycznego klucza sesji.sesji Dal-jest wysył sesji. Zaszyfrowany kluczem publicznym symetryczny klucz sza komunikacja pomiędzy klientem i serwerem szyfrowana pomocą symetrycznego klucza sesji, serwera, który zajest pomocą kluczaza prywatnego dokonuje deszyfracji symetrycznego który „zna” klient i serwer- jeden z serwerów klastrze NLB. Gdyby sesja została przeniesiona inny sesji. Dalsza w komunikacja pomiędzy klientem i serwerem jestnaszyfrowana za p serwer w klastrze NLB, który nie posiada aktualnego sesjii nastąpiłoby zerwanie symetrycznego kluczaklucza sesji, symetrycznego który „zna” klient serwer- jeden z serwerów w k sesji. Przed takimi zdarzeniami zabezpiecza Affinity: serwerna w inny klastrze NLBwzapamiętuje IP który nie p NLB. Gdybymechanizm sesja została przeniesiona serwer klastrze NLB, aktualnego sesji nastąpiłoby zerwanie sesji. Przed klienta, który z nim nawiązał połączenie (IP klucza klienta –symetrycznego w domyślnym ustawieniu Single Host, a w szczezdarzeniami zabezpiecza mechanizm Affinity: w klastrze NLB zapamię gólnej konfiguracji pierwsze trzy bajty adresu IPv4 - Klasy C, stosowanej gdy serwer obsługujemy klientów klienta, który z nim nawiązał połączenie (IP klienta – w domyślnym ustawieniu Host, a w szczególnej konfiguracji pierwsze trzy bajty adresu IPv4 - Klasy C, stos gdy obsługujemy klientów łączących się zza Array Proxy) i deklaruje dla niego na koszt przyjęcia połączenia (0). W takim przypadku sesja zostanie przeniesiona n serwer w klastrze NLB wyłącznie w przypadku awarii serwera dotychczas obsługu 110 Bazy Danych i Business Intelligence Mechanizmy zapewnienia wysokiej dostępności aplikacji wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL łączących się zza Array Proxy) i deklaruje dla niego najniższy koszt przyjęcia połączenia (0). W takim przypadku sesja zostanie przeniesiona na inny serwer w klastrze NLB wyłącznie w przypadku awarii serwera dotychczas obsługującego połączenie. Implementacja NLB monitoruje na serwerach Windows pracę usługi WLBS, która weryfikuje dostępność hosta w klastrze NLB, ale nie monitoruje pracy usług. Niezależnymi mechanizmami, należy również zapewnić spójność zawartości witryn i ustawień aplikacji. Z klastra NLB mogą korzystać aplikacje korzystające wyłącznie z protokołów TCP i UDP. Inne protokoły nie mogą korzystać z NLB, np. niestosowane już od bardzo dawna w nowych aplikacjach NetBT, to jednak z powodu zaszłości historycznych spotykany w wielu firmach (był cenny w czasach, gdy używano w sieciach różnych protokołów IPX/SPX, NetBEUI, Appletalk, a protokół TCPIP jeszcze nie pozwolił na stworzenie globalnego i powszechnie dostępnego internetu, ponieważ uniezależniał aplikacje klient-serwer od podanych przykładów protokołów transportowych, wystarczyło użycie do7 datkowej warstwy NETBIOS). Rys.9. Równoważenie ładowania aplikacji Rys.9. Równoważenie ładowania aplikacji Na rynku dostępne są rozwiązania Aplication Load(ALB) Balancing (ALB)wstosowane w celu Na rynku dostępne są rozwiązania Aplication Load Balancing stosowane celu rozłożeobciążenia i obsługę awarii serwerów warstwyrozwiązań aplikacji. polega Działanie rozwiązań nia obciążenia irozłożenia obsługę awarii serwerów warstwy aplikacji. Działanie zwykle na polega zwykle na odpytywaniu usługi z listy serwerów w klastrze aplikacyjnym i odpytywaniu usługi z listy serwerów w klastrze aplikacyjnym i sortowanie tej listy według rosnących sortowanie tej listy według rosnących czasów odpowiedzi. „Na górze” listy jest więc czasów odpowiedzi. „Na górze” listy jest więc serwer, który najszybciej odpowiedział, więc najprawdoserwer, który najszybciej odpowiedział, więc najprawdopodobniej jest najmniej podobniej jest najmniej obciążony w stosunku do posiadanych zasobów. Jest to stosunkowo efektywne obciążony w stosunku do posiadanych zasobów. Jest to stosunkowo efektywne rozwiązanie, które w przeciwieństwie do NLB monitoruje pracę monitoruje usługi (jeślipracę usługausługi z serwera od- z rozwiązanie, które w przeciwieństwie do NLB (jeślinie usługa powiedziała, to nie ma go liście serwerówtodonie odpytania dlaliście warstwy prezentacji, pojawi się, na serwera nienaodpowiedziała, ma go na serwerów do odpytania dlagdy warstwy kolejne zapytanie usługa odpowie zdefiniowanym przedziale czasu.usługa odpowie w zdefiniowanym prezentacji, pojawiw się, gdy na kolejne zapytanie przedziale czasu. Rys. 10. Sprzętowe równoważenie obciążenia HLB Oprócz rozwiązań softwarowych jest dostępnych na rynku wiele rozwiązań sprzętowych Hardware Load Balancing (HLB), które pozwalają zarówno na wykorzystanie serwer, który najszybciej odpowiedział, więc najprawdopodobniej jest najmniej obciążony w stosunku do posiadanych zasobów. Jest to stosunkowo efektywne rozwiązanie, które w przeciwieństwie do NLB monitoruje pracę usługi (jeśli usługa z Mechanizmy zapewnienia wysokiej dostępności aplikacji serwera nie zodpowiedziała, to nie ma goSQL na liście serwerów odpytania dla warstwy wielowarstwowych korzystających relacyjnych baz danych Microsoft Bazy Danychdo i Business Intelligence 111 prezentacji, pojawi się, gdy na kolejne zapytanie usługa odpowie w zdefiniowanym przedziale czasu. Rys. 10. Sprzętowe równoważenie obciążenia obciążenia HLB Rys. 10. Sprzętowe równoważenie HLB Oprócz rozwiązań softwarowych jest dostępnych na rynku wiele rozwiązań sprzętowych Oprócz rozwiązań softwarowych jest dostępnych na rynku wiele rozwiązań sprzętowych Hardware Hardware Load Balancing (HLB), które pozwalają zarówno na wykorzystanie Load Balancing (HLB), które pozwalają zarówno na wykorzystanie mechanizmów NLB jak ALB zamechanizmów NLB jak ALB zależnie od wybranego modelu urządzenia. Rozwiązanie leżnie od wybranego modelu urządzenia. Rozwiązanie sprzętowe pozwalają na użycie równoważenia sprzętowe na użycie równoważenia obciążenia usług dla aplikacji, które nie 8 pozwalają obciążenia usługobsługują dla aplikacji, które nie obsługują NLB np. pula enterprise serwerów FrontEnd NLB np. pula enterprise serwerów FrontEnd Office CommunicationOffice Server, 8 Communicationalbo Server, albo Lync2010 (Lync 2010 obsługuje dla protokołu ale nie HTTPS). Lync (Lync obsługuje DNSLBDNSLB dla protokołu SIP, ale SIP, nie HTTPS). W warstwach prezentacji i aplikacyjnej rzadziej stosuje się usługi klastrowe cluster services (CS), klastrowe W warstwach prezentacji i aplikacyjnej rzadziej stosuje się usługi W rozwiązaniach warstwach prezentacji i aplikacyjnej rzadziej stosuje się usługi klastrowe ponieważ w wielu są to klastry niezawodnościowe failover pracujące w modelu sharedcluster services (cS), ponieważ w wielu rozwiązaniach są to klastry niezawodnościowe services (cS),wponieważ ww wielu rozwiązaniach sąjednym to klastry niezawodnościowe nothing,cluster gdzie grupa zasobów tym klastrowana usługa pracuje na węźle klastra. W razie jegoklastrowana failover pracujące modelu shared-nothing, gdzie grupa zasobów w tym failover pracujące w modelu shared-nothing, gdzie grupa zasobów w tym klastrowana awarii jest przenoszona na inny węzeł klastra, podobnie jak NLB w trybie single host. Usługi klastrowe usługa pracuje na jednym węźle klastra. W razie jego awarii jest przenoszona na inny usługaczęściej pracuje stosuje na jednym klastra. jak W NLB razie jego awarii jest host. przenoszona na inny zdecydowanie się dowęźle zapewnienia wysokiej dostępności warstwy bazodanowej, o czym węzeł klastra, podobnie w trybie single Usługi klastrowe zdecydowanie węzeł klastra, podobnie jak NLB w trybie single host. Usługi klastrowe zdecydowanie później. W rozwiązaniachczęściej wysokiej dostępności stosuje się wirtualizację. stosuje się do zapewnienia wysokiej dostępności warstwy bazodanowej, o czym częściej stosuje się do zapewnienia wysokiej dostępności warstwy bazodanowej, o czym później. W rozwiązaniach wysokiej dostępności stosuje się wirtualizację później. W rozwiązaniach wysokiej dostępności stosuje się wirtualizację . . Rys. 11. Wirtualizacja Rys. 11. Wirtualizacja Rys. 11. Wirtualizacja Wirtualna usługa lub cała wirtualna maszyna pracuje hypervizora, na jednym z serwerów Wirtualna usługausługa lub cała wirtualna maszyna pracuje na jednym z serwerów w przypad-hypervizora Wirtualna lub cała wirtualna maszyna pracuje na jednym z serwerów hypervizora, w przypadku jego awarii lub przeciążenia wirtualna maszyna lub wirtualna ku jego awarii lub przeciążenia wirtualna maszyna lub wirtualnamaszyna usługa jest przenoszona na inny serwer usługa jes w przypadku jego awarii lub przeciążenia wirtualna lub wirtualna usługa jest przenoszona na inny serwer hypervizora. Dostępne są rozwiązania pozwalające na hypervizora. Dostępnena są inny rozwiązania naDostępne przeniesienie wirtualnej usługi lub maszyny przenoszona serwer pozwalające hypervizora. są rozwiązania na bez przeniesienie wirtualnej usługi lub maszyny bez jej pozwalające restartu – Live Migration. Do jej restartu – Live Migration. Do dominujących na rynkubez rozwiązań można VMware.Do Microprzeniesienie wirtualnej usługinalub maszyny jej restartu – zaliczyć: Live Migration. dominujących rynku rozwiązań można zaliczyć: VMware. Microsoft Hyper-V, Citrix soft Hyper-V, Citrix XenServer. dominujących naXenServer. rynku rozwiązań można zaliczyć: VMware. Microsoft Hyper-V, Citrix XenServer. Rys. 12. Chmura obliczeniowa Rys. 12. Chmura obliczeniowa Rys. 12. Chmuraobciążenia obliczeniowa Do zrównoważenia oraz zapewnienia wysokiej dostępności coraz Do zrównoważenia obciążenia oraz zapewnienia wysokiej dostępności częściej wykorzystuje się usługi w chmurze obliczeniowej cloudcoraz computing, będące częściej wykorzystuje się usługi w chmurzeDo obliczeniowej cloudnależą computing, będąceCloud computing rozwinięciem wirtualizacji. bardziej znanych rozwiązania rozwinięciem wirtualizacji. Do bardziej znanych należą rozwiązania firm: Amazon, Rackspace, Salesforce, Microsoft, Cloud IBM, computing Google. Wykorzystywana firm: Amazon, chmura Rackspace, Salesforce, IBM, Google. na Wykorzystywana obliczeniowa możeMicrosoft, być prywatna, zbudowana sprzęcie będącym w posiadaniu chmura obliczeniowa być prywatna, zbudowana na sprzęcie będącym w firmymoże lub wydzierżawionym albo publiczna, korzystająca zeposiadaniu sprzętu dostawcy chmury 112 Bazy Danych i Business Intelligence Mechanizmy zapewnienia wysokiej dostępności aplikacji wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL Do zrównoważenia obciążenia oraz zapewnienia wysokiej dostępności coraz częściej wykorzystuje się usługi w chmurze obliczeniowej Cloud Computing, będące rozwinięciem wirtualizacji. Do bardziej znanych należą rozwiązania Cloud computing firm: Amazon, Rackspace, Salesforce, Microsoft, IBM, Google. Wykorzystywana chmura obliczeniowa może być prywatna, zbudowana na sprzęcie będącym w posiadaniu firmy lub wydzierżawionym albo publiczna, korzystająca ze sprzętu dostawcy chmury obliczeniowej. Planując użycie chmury do równoważenia obciążenia i zapewnienia wysokiej dostępności usług, szczególnie w modelu hybrydowym, 9 gdzie szczytowe i zasobożerne obliczenia wykonywane są w chmurze publicznej (np. przeliczanie grup miar), a dane słownikowe (np. hierarchie9 wymiarów) na serwerach firmowych, należy uwzględnić wyeliminowanie pojedynczych punktów awarii połączenia do internetu oraz jego odpowiednią przepustowość. 3. Wysoka dostępność warstwy bazodanowej warstwy składowania danych jest krytyczna dla 3. Wysoka dostępność warstwy 3. Dostępność Wysokabazodanowej dostępność warstwy bazodanowej działania a biznesowych. Omówione wcześniej rozwiązania zapewnienia wysokiej dost Dostępność warstwy składowania danych jest krytyczna działania aplikacji Dostępność warstwydla składowania danych biznesowych. jest krytycznaOmódla działania a warstw prezentacji i aplikacji zwykle nie mają zastosowania dla warstwy bazod wione wcześniej rozwiązania zapewnienia wysokiej dostępności warstw prezentacji zapewnienia i aplikacji zwykle biznesowych. Omówione wcześniej rozwiązania wysokiej dost ze względu na konieczność zapewnienia spójności danych, której utrzymanie nie mają zastosowania dla warstwy bazodanowej, względuzwykle na konieczność zapewnienia spójności warstw prezentacji izeaplikacji nie mają zastosowania dla warstwy bazod klastrze NLB w wielu przypadkach może być bardziej kosztowne od korzyśc zeklastrze względu na wkonieczność zapewnienia spójności danych, którejodutrzymanie danych, której utrzymanie np. wkażde NLB wielu przypadkach może być bardziej kosztowne wdrożenie należy rozpatrywać indywidualnie. Umieszczenia baz dan klastrze NLB w wielu przypadkach Umieszczenia może być bardziej kosztowne korzyśc korzyści, choć każde wdrożenieserwerach należy rozpatrywać indywidualnie. danych ser-od ma aplikacyjnych pracujących w klastrzebazNLB lubnaALB naj każde wdrożenie należy rozpatrywać indywidualnie. Umieszczenia baz dan werach aplikacyjnych pracujących w klastrze NLB lub ALB ma najczęściej zastosowanie, gdy bazy są zastosowanie, gdy bazy są w trybie do odczytu, zasilane z serwera cent serwerach aplikacyjnych pracującychlokalny w klastrze lub ALB ma naj w trybie do odczytu, zasilane zalternatywą serwera centralnego, alternatywą serwer, NLB na są którym jest lokalny serwer, najest którym zapisywane dane zapipochodzące z zastosowanie, gdy bazya następnie są w trybie do odczytu, zasilane z serwera cent sywane są dane pochodzące z aplikacyjnego, serwera aplikacyjnego, replikowane z centralną składnicą a następnie replikowane z centralną składnicą danych. Wadą alternatywą jestopóźnienia lokalny serwer, na którym baz zapisywane są zdane pochodzące z danych. Wadą takiego rozwiązania mogą być w synchronizacji lokalnych centralną rozwiązania mogą być opóźnienia w synchronizacji baz lokalnych z centralną sk aplikacyjnego, a następniesą replikowane z centralną składnicą danych. Wadą składnicą danych, jednak ze względów stosowane. Alternatywnym danych, wydajnościowych jednak ze względów wydajnościowych sąrozwiązaniem stosowane. Alternat rozwiązania być zapewnia opóźnieniausługa w synchronizacji baz lokalnych z centralną sk jest użycie transakcji rozproszonych, którychmogą spójność Microsoft Distributed Transrozwiązaniem jest użycie transakcji rozproszonych, których spójność zapewnia danych, jednak rozważyć ze względów są wydłużenia stosowane. Alterna action Coordinator (MsDTC).Microsoft Należy jednak efekt w wydajnościowych postaci potencjalnego distributed transaction coordinator (Msdtc). Należy jednak ro rozwiązaniem jest co użycie rozproszonych, których spójność zapewnia czasu trwania transakcji, zwiększoną blokad, możetransakcji prowadzić do spadku efekt ilość w postaci potencjalnego wydłużenia czasuwydajności. trwania transakcji, zwiększon Microsoft distributed transaction coordinator (Msdtc). Należy jednak ro blokad, co może prowadzić do spadku wydajności. efekt w postaci potencjalnego wydłużenia czasu trwania transakcji, zwiększon blokad, co może prowadzić do spadku wydajności. Koordynator tranzakcji rozproszonychMicrosoft Rys.13.Rys.13. Koordynator tranzakcji rozproszonychMicrosoft Rys.13. Koordynator tranzakcji rozproszonychMicrosoft Jest dostępna wersja Microsoft SQL Azure, który jest składnicą danych przechow Jest dostępna wersja Microsoft SQL Azure, który jest składnicą danych przechowywaną w chmurze. w chmurze. W wielu rozwiązaniach może to być dobry wybór zapewniający W wielu rozwiązaniach może toJest byćdostępna dobry wybór wysoką dostępność, gdy przechow wersjazapewniający Microsoft SQL Azure, który jestszczególnie, składnicą danych dostępność, szczególnie, gdy warstwa aplikacji i prezentacje są umieszczone w c warstwa aplikacji i prezentacje są chmurze. w umieszczone chmurze. Wwwielu rozwiązaniach może to być dobry wybór zapewniający dostępność, szczególnie, gdy warstwa aplikacji i prezentacje są umieszczone w c Rys.14. SQL Azure Rys.14. SQL AzureSQL Azure Rys.14. Należy jednak pamiętać, że nie jest to silnik Microsoft SQL 2012 uruchom chmurze, tylko niezależny produkt i przeniesienie składnicy danych ze „zw Należy jednak pamiętać, że nie jest to silnik Microsoft SQL 2012 uruchom Microsoft SQL Server do SQL Azure może wymagać istotnych zmian zarówno chmurze, tylko niezależny produkt i przeniesienie składnicy danych ze „zw danych jak i aplikacji, która z tej bazy korzysta. Microsoft SQL Server do SQL Azure może wymagać istotnych zmian zarówno danych jak i aplikacji, która z tej bazy korzysta. Mechanizmy zapewnienia wysokiej dostępności aplikacji wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL Bazy Danych i Business Intelligence 113 Należy jednak pamiętać, że nie jest to silnik Microsoft SQL 2012 uruchomiony w chmurze, tylko nie10 10 zależny produkt i przeniesienie składnicy danych ze „zwykłego” Microsoft SQL Server do SQL Azure może wymagać istotnych zmian zarówno w bazie danych jak i aplikacji, która z tej bazy korzysta. Jednym z bardziej znanych sposobów zapewnienia dostępności bazy danych jest instalacja Microsoft Jednym z bardziej znanych sposobów dostępności bazy danych jest ba Jednym z bardziejzapewnienia znanych sposobów zapewnienia dostępności instalacjaklastrowych Microsoftinstalacja Serwer na usługach klastrowych - Microsoft clustering Microsoft SQL Serwer na usługach klastrowych - Micros SQL Serwer na usługach -SQL Microsoft Clustering Services (MSCS). Services (MScS). Services (MScS). Rys.15. SQL na Rys.15. usłudze klastrowej Rys.15. SQL na usłudze klastrowej SQL na usłudze klastrowej W klasycznym rozwiązaniu klastrowym pomiędzy węzłami klastra jestwęzłami współdzielona W klasycznym rozwiązaniu pomiędzy W klasycznym rozwiązaniu klastrowym pomiędzy węzłami klastraklastrowym jest współdzielona magistrala, doklastra jest magistrala, do którejmagistrala, podpięte do są składnice danych.są Najczęściej wykorzystywane której podpięte składnice danych. Najczęściejsą wyko której podpięte są składnice danych. Najczęściej wykorzystywane są technologie Fibre Chanel i iSCSI. technologie Fibre Chanel i iSCSI. Bazy danych i logiBazy transakcyjne się na technologie Fibre Chanel i iSCSI. danych iznajdują logi transakcyjne z Bazy danych i logi transakcyjne znajdują się na macierzach na magistrali współdzielonej. macierzach na magistrali współdzielonej. macierzach na magistrali współdzielonej. Rys.16. Baza na magistrali klastra Rys.16.współdzielonej Baza na magistrali współdzielonej klastra Rys.16. Baza na magistrali współdzielonej klastra W przypadku awariiW węzła klastra,awarii na którym SQL pracuje Server (iusługa inne usługi przypadku węzłapracuje klastra,usługa na którym SQL Serve W przypadku awarii węzła klastra, na którym pracuje usługa SQL Server (i innewęźle usługi klastra. SQL), wPrzy wyni-starcie SQL), w wyniku failover usług na innym SQL), następuje w wynikurestart failover następuje restart usług na innym węźle klastr ku failover następuje restart usług na innym węźle klastra. Przy starcie bazy i logi są montowane z dysku bazy i logi są montowane dysku współdzielonego. Wwspółdzielonego. trakcie startu następuje naprawa bazy izlogi są montowane z dysku W trakcie startu nas współdzielonego. W trakcie startu następuje bazy. Po failover SQL jest dostępna bazy. Po failover instancja SQL jest dostępna pod tąinstancja samądostępna nazwą ipod tym adresem bazy.naprawa Po failover instancja SQL jest tąsamym samą pod nazwą i tym s tą samą nazwą i tym samym adresem IP. Jednak czas przełączenia po failover, zależny od czasu startu IP. Jednak czas przełączenia poczas failover, zależny po od failover, czasu startu usługi, tym startu naprawy IP. Jednak przełączenia zależny od wczasu usługi, w usługi, w tym naprawy baz danych. baz danych. baz danych. W przypadku użycia mirroringu baz użycia czasyWprzełączenia przypadku awarii liczone są wprzełączenia milise-awariiw prz W przypadku mirroringu baz czasy przełączenia przypadku przypadku wużycia mirroringu baz w czasy kundach. W przeciwieństwie do usług klastrowych mirrorowana nie jest cała instancja, a jedynie liczone są w milisekundach. klastrowychdomirrorowana nie liczone sąWwprzeciwieństwie milisekundach. do W usług przeciwieństwie usługbaza klastrowych m użytkowników. Niezależnie należy zapewnić spójność informacji przechowywanych w bazie master jest cała instancja, a jest jedynie użytkowników. Niezależnie należy zapewnić spójność cała baza instancja, a jedynie baza użytkowników. Niezależnie należy zap np. loginów. Przy zastosowaniu mirroringu w trybie synchronicznym można użyć dodatkowego serwera informacji przechowywanych wprzechowywanych bazie master np. loginów. Przy zastosowaniu mirroringu informacji w bazie master np. loginów. Przy zastosowa świadka (Witness Server) monitorującego pracy baz i wdodatkowego razie awarii przełączającego w trybie synchronicznym można użyć serwera świadka (Witness w stan trybie synchronicznym możnaautomatycznie użyć dodatkowego serweraServer) świadka (W monitorującego pracy baz i wdorazie awarii automatycznie przełączającego bazy. Po bazy. Po failover następuje zmianastan nazwy instancji której łączybaz sięi aplikacja. Zapewnia to Native monitorującego stan pracy w razie awarii automatycznie przełączaj failoverstring następuje zmiana nazwy doi awaryjnego której łączy się do aplikacja. Zapewnia to failover następuje zmiana nazwy instancji której łączy się aplikacja Client, gdy w connection podamy połączenie doinstancji głównego serwera np. Native Client, gdy wNative connection połączenie głównego i awaryjnego Client,string gdy wpodamy connection string do podamy połączenie do głównego serwera np. serwera np. Data Source=myServerAddress; Data Source=myServerAddress; Data Source=myServerAddress; Failover Partner=myMirrorServerAddress; Failover Partner=myMirrorServerAddress; Failover Partner=myMirrorServerAddress; Initial Catalog=myDataBase;Integrated Security=True; Initial Catalog=myDataBase;Integrated Security=True; Initial Catalog=myDataBase;Integrated Security=True; 114 Bazy Danych i Business Intelligence 11 11 Mechanizmy zapewnienia wysokiej dostępności aplikacji wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL Rys.17. Mirroring Rys.17. Mirroring Rys.17. Mirroring W mirroringu transakcje zachodzą w bazie principal i są replikowane do W mirroringu transakcje zachodzą w bazie principal i są replikowane do bazy danych ma więc swoją pełną kopię namirror. drugim serwerze, W mirroringu transakcje zachodzą Baza w bazie principal i są replikowane do bazy Baza danychczyli należy Baza danych ma więc swoją pełną kopię na drugim serwerze, czyli należy prze macierze dyskowe. Mirroringdwie może pracować w trybie ma więc swoją pełną kopię na drugimdwie serwerze, czyli należy przewidzieć macierze dyskowe. Mir- asynchron dwie macierze Mirroring może pracować w trybie aasynchroniczny transakcja dyskowe. jestgdy zamykana natychmiast w bazie principal, zmiany są re roring może pracować w trybietransakcja asynchronicznym, transakcja jest w zamykana natychmiast w bazie jest zamykana natychmiast bazie principal, a zmiany są replikow bazy mirror. Użycie trybu asynchronicznego, który choć jest szybszy, może principal, a zmiany są replikowane do bazy mirror. Użycie trybu asynchronicznego, który choć jest bazy mirror. Użycie trybu asynchronicznego, który choć jest szybszy, może dopro wawarii razie awarii do utraty części transakcji w bazie mirror, które zostały zamk szybszy, może doprowadzić wwrazie części transakcji w bazie bazie mirror, którezostały zostały razieprincipal. awariido do utraty utraty części transakcji w mirror, które zamknięte Ponadto w trybie asynchronicznym zachodzi zamknięte w bazie principal. Ponadto w trybie asynchronicznym zachodzi konieczność ręcznegokonieczność prze- konieczno principal. Ponadto w trybie asynchronicznym zachodzi przełączenie w pracy razie transakcja awarii. Przy synchronicznym trybie pracy transarę łączenie w razie awarii. Przy synchronicznym trybie w bazie principal jest zamykana przełączenie w jest raziezamykana awarii. Przy synchronicznym trybie pracy transakcja principal po zreplikowaniu logu do sew po zreplikowaniu skompresowanego logu do serwera z bazą mirror (od wersji SQLskompresowanego 2008, w SQL 2005 principal jest zamykana po zreplikowaniu skompresowanego logu do serwera mirror (od wersji SQL 2008, w SQL 2005 dopiero po zamknięciu trans dopiero po zamknięciu transakcji w bazie mirror, ponadto transmitowany log nie był kompresowany). mirrormirror, (od wersji SQLtransmitowany 2008, w SQL log 2005niedopiero po zamknięciu W transakcji ponadto był kompresowany). przypadkw W przypadku mirroringu (SQL mirror, 2008/2008R2/2012 Enterprice Edition) podniesiona również odponadto transmitowany log niezostała byłEdition) kompresowany). W przypadku mir (SQL 2008/2008R2/2012 Enterprice została podniesiona również porność na uszkodzenie stron danych. Wykryta uszkodzona strona danych w bazie principal jest auto(SQL uszkodzenie 2008/2008R2/2012 Enterprice Edition)uszkodzona została podniesiona również odpor stron danych. Wykryta strona danych w bazie matycznie naprawiana poprzezuszkodzenie skopiowanie z bazy mirror, a uszkodzona strona danych w bazie mirstron danych. Wykryta uszkodzona strona danych w bazie automatycznie naprawiana poprzez skopiowanie z bazy mirror, a princi uszko automatycznie naprawiana poprzez z problem bazy mirror, a principal. uszkodzona ror naprawiana poprzez skopiowanie z bazy principal. Mechanizm tenskopiowanie minimalizuje związany danych w bazie mirror naprawiana poprzez skopiowanie z bazy M danych w bazie mirror naprawiana poprzez skopiowanie z bazy principal. Mechan z czasochłonnym naprawianiem uszkodzonych stron danychzwiązany poprzez odzyskiwanie bazy z backupu, minimalizuje problem z czasochłonnym naprawianiem uszkod problem związany z baza czasochłonnym naprawianiem w czasie którego grupa plików zminimalizuje uszkodzoną danych lub cała jest niedostępna produkcyjnie. danych stroną poprzez odzyskiwanie bazy z backupu, w czasie uszkodzonyc którego gru poprzezbaza odzyskiwanie bazy z backupu, czasie którego grupa plW W mirroringu biorą udział dwiedanych bazy, uszkodzoną z których mirror nie jest dostępna dla użytkowników wprost. stroną danych lub cała baza jestwniedostępna produkcyjnie. uszkodzoną stroną danych lub cała baza jest niedostępna produkcyjnie. Istnieje możliwość wykonania na bazie mirror snapshotu, który zjestktórych dostępny produkcyjnie trybie do Wdlamir biorą udział dwie bazy, baza mirror niewjest dostępna u biorą udział bazy, z których baza mirror nie jest dostępna dla użytkow odczytu i może być wykorzystany do wprost. robieniadwie raportów. Istnieje możliwość wykonania na bazie mirror snapshotu, który Istnieje bazie mirror snapshotu, który jestrapo d Mechanizmem znanym już wwprost. SQLprodukcyjnie 2000 był możliwość logwshipping. primary mabyć wprowadzony backup trybie wykonania do Baza odczytu ina może wykorzystany do robienia wbazach trybie do odczytu i może robienia raportów. logów transakcyjnych, które są produkcyjnie odtwarzane naMechanizmem secondary. znanym jużbyć w wykorzystany SQL 2000 byłdolog shipping. Baza Mechanizmem znanym już w SQL 2000 był log shipping. Baza prim wprowadzony backup logów transakcyjnych, które są odtwarzane na baza wprowadzony backup logów transakcyjnych, które są odtwarzane na bazach sec Rys.18. Log Log shipping Rys.18. shipping Rys.18. Log shipping Baz secondary może być kilka. Opóźnienia w odtworzeniu transakcji w bazach secondary mogą być liczone w minutach w stosunku do bazy primary. W log shippingu brak mechanizmu automatycznego przełączenia bazy i przełączenie w razie awarii musi być wykonywane ręcznie. Bazy secondary w czasie odtwarzania logu są niedostępne produkcyjne, poza odtworzeniami mogą być dostępne w trybie do mogąmoże być być liczone minutach w odtworzeniu stosunku dotransakcji bazy primary. W seconda log sh Baz secondary kilka.wOpóźnienia w bazach mechanizmu automatycznego przełączenia bazy i przełączenie w razie mogą być liczone w minutach w stosunku do bazy primary. W log shippinguawa br wykonywane ręcznie. Bazy secondary w czasie odtwarzania logu sąb mechanizmu automatycznego przełączenia bazy i przełączenie w razie awarii musi Mechanizmy zapewnienia wysokiej dostępności aplikacji produkcyjne, poza SQL odtworzeniami mogą i być dostępne w trybie do odczy Bazy secondary Bazy w Danych czasie odtwarzania logu są niedostęp wielowarstwowych korzystającychwykonywane z relacyjnych bazręcznie. danych Microsoft Business Intelligence 115 rozpoczęciu odtwarzania mogą backupu połączenia są zrywane, ponadto zw produkcyjne, poza odtworzeniami byćlogu dostępne w trybie do odczytu, ale pr opóźnienia bazbackupu secondary stosunku sądozrywane, primaryponadto wynikające z ocz rozpoczęciu odtwarzania loguwpołączenia zwiększają odczytu, ale przy rozpoczęciu odtwarzania logu w połączenia są do zrywane, ponadto zwiększają się zamknięcia połączeń i przełączenia bazy przed rozpoczęciem odtwa opóźnienia bazbackupu secondary stosunku primary wynikające z oczekiwania opóźnienia baz secondary w stosunkutransakcyjnego. do primary iwynikające z oczekiwania na zamknięcia połączeń zamknięcia połączeń przełączenia bazy przed rozpoczęciem odtwarzania lo i przełączenia bazy przed rozpoczęciem odtwarzania transakcyjnego. Jeśli nie logu chcemy synchronizować całej bazy użytkownika można rozw transakcyjnego. Jeśli nie chcemy synchronizować całej bazy użytkownika możnacałej rozważyć użycie replikacji. Przy replikacji. Przy definiowaniu publikacji można wybrać obiekty do replik Jeśli nie chcemy synchronizować bazy użytkownika można rozważyć uży definiowaniu publikacji można wybrać obiekty do replikacji, ponadto wybrane tablice (lub widoki) wybrane tablice (lub widoki) można odfiltrować zarówno poziomo jak i replikacji. Przy definiowaniu publikacji można wybrać obiekty do replikacji, ponad można odfiltrować zarównowybrane poziomotablice jak i pionowo. W replikacji bierze udział: publisher – serwer na replikacji udział: publisher – serwer na którym jestjak baza, z której (lubbierze widoki) można odfiltrować zarówno poziomo i pionowo. którym jest baza, z której udostępniana jest publikację, distributor – na udostępniona jest publijest publikację, distributor – na którym udostępniona jest publikacja, częs replikacji bierze udział: publisher – serwer na którym jest baza, z której udostępnia kacja, często jest na tej samej co publisher –udostępniona który pobierajest publikację do bazy. samej instancjioraz co–subscriber publisher subscriber – publikacja, który pobiera publikację jestinstancji publikację, distributor na którymoraz często jest na wyboru kilka sposobów replikacji.– który pobiera publikację do bazy. Do wyboru jest kilka sposobów samejreplikacji. instancji cojest publisher oraz subscriber wyboru jest kilka sposobów replikacji. Rys.19. Typy replikacji Rys.19. Typy Rys.19. replikacji Typy replikacji Replikacja snapshot polega na wykonaniu kopii i załadowaniu subskryberów. poprzedzana jestsubskryberów. czyszczeniem baz subskryberów. Replikacja snapshot polega na wykonaniu kopii i załadowaniu Replikacja snapshot polega na wykonaniu kopii i Zwykle załadowaniu jej do baz Zwykle po- jej do b Replikacja merge jest pozwala na dwustronną replikację asynchroniczn subskryberów. Zwykle poprzedzana czyszczeniem baz subskryberów. przedzana jest czyszczeniem baz subskryberów. wykorzystana synchronizacji danych replikację z SQL CEasynchroniczną. zabezpieczonej protoko Replikacja mergedopozwala na dwustronną Może b Replikacja merge pozwala na dwustronną replikację asynchroniczną. Może być wykorzystana do Cechą mergedanych jest konieczność do każdejprotokołem replikowanej tab wykorzystana do replikacji synchronizacji z SQL CEdodania zabezpieczonej HTTP synchronizacji danych z SQL CE zabezpieczonej protokołem HTTPS. Cechą replikacji merge jest koz typem danych rowguid. Jestdodania on wykorzystywany do rozwiązywania kon Cechą replikacji merge jest konieczność do każdej replikowanej tablicy kolum nieczność dodania do każdej replikowanej z typemzmieniony danych rowguid. Jestsubscryberach, on wykorzy- lub sub wiersztablicy zostałkolumny jednocześnie nadokilku z typem danych rowguid. Jest on wykorzystywany rozwiązywania konfliktów, g stywany do rozwiązywaniawiersz konfliktów, gdy wiersz zostałzmieniony jednocześnie na kilku subscrybepublischerze. został jednocześnie na zmieniony kilku subscryberach, lub subscryberach rach, lub subscryberach i publischerze. Replikacja transakcyjna jest replikacją synchroniczną, szczególni publischerze. Replikacja transakcyjna jest replikacją synchroniczną, szczególnie efektywną, gdy chcemy zmniej- zmiany gdy chcemy zmniejszyć ilość replikowanych danych, ponieważ są Replikacja transakcyjna jest replikacją synchroniczną, szczególnie efektyw szyć ilość replikowanych danych, ponieważ zmiany są replikowane na podstawie logu transakcyjnego na zmniejszyć podstawie logu gdy chcemy ilośćtransakcyjnego replikowanych danych, ponieważ zmiany są replikowa Szczególnym przypadkiem jest replikacja Peerreplikacji to Peer, wprowadzona Mi-replikacja p przypadkiem transakcyjnej wjest na replikacji podstawietransakcyjnej loguSzczególnym transakcyjnego crosoft SQL 2008. Pozwala ona naSzczególnym transakcyjną, synchroniczną replikację wielostronną, replikowane wprowadzona w Microsoft SQL 2008. Pozwalajestona na transakcyjną, przypadkiem replikacji transakcyjnej replikacja peer to pes mogą być nie tylko zmianywprowadzona z bazy publishera, ale również zmiany z baz subscryberów. replikację wielostronną, replikowane mogą tylko zmiany z bazy pu w Microsoft SQL 2008. Pozwala onabyć nanie transakcyjną, synchronicz również zmiany z baz subscryberów. replikację wielostronną, replikowane mogą być nie tylko zmiany z bazy publishera, również zmiany z baz subscryberów. Rys.20.Replkacja Rys.20. Replkacjapeer peerto topeer peer Rys.20.Replkacja peer to peer W Microsoft SQL 2012 wprowadzony kolejny mechanizm zapewnienia wysokiej dostępności always -on. Technologia ta łączy zalety mirroringu, replikacji i MSCS, którego komponenty podobnie jak DAG Exchange 2010 wykorzystuje do obsługi faiklover. W always-on Microsoft SQL 2012 definiowana jest AlwaysOn Availability Group, w obrębie której jest podstawowa replika bazy primary replica w trybie zapisu i odczytu, oraz do czterech dodatkowych replik secondary replica, które mogą być udostępnione w trybie tylko do odczytu i backupowane. Jest obsługiwany zarówno automatyczny, jak manualny planowany lub wymuszony failover. Usługa Availability group listeners pozwala na przekierowanie żądania aplikacji w zależności od typu zapytania do primary replica, która jest w trybie zapisu lub secondary replica w trybie odczytu. Listener zapewnia również szybki failover w razie awarii poprzez zamianę jednej z secondary replika w primary replika. Failover jest definiowana w failover policy. group listeners pozwala na przekierowanie żądania aplikacji w zależności o zapytania do primary replica, która jest w trybie zapisu lub secondary replica w odczytu. Listener zapewnia również szybki failover w razie awarii poprzez z Mechanizmy zapewnienia wysokiej dostępności aplikacji jednej z secondary replika w primary replika. baz Failover jest definiowana w wielowarstwowych korzystających z relacyjnych danych Microsoft SQL Bazy Danych i Business Intelligence 116 policy. Rys.21. Always-on Rys.21. Always-on Analogicznie do mirroringu następuje automatyczne detekcja i naprawa uszkodzonych stron danych. Analogicznie do mirroringu następuje automatyczne detekcja i n Replikacja pomiędzy primary auszkodzonych secondary replika i szyfrowanie. Always-on w sto- replika stronwspiera danych.kompresję Replikacja pomiędzy primary a secondary sunku do mirroringu wyróżnia się dwoma istotnymi zaletami: zamiast jednej bazy mirror można kompresję i szyfrowanie. Always-on w stosunku do mirroringuużyć wyróżnia się od jednej do czterech secondaryistotnymi replika, ponadto te repliki dostępne w trybie potrzeby zaletami: zamiastsajednej bazy mirrorodczytu możnabez użyć od jednej do c robienia snspshotu. secondary replika, ponadto te repliki sa dostępne w trybie odczytu bez potrzeby snspshotu. 4. Podsumowanie Jest dostępny cały szereg mechanizmów pozwalających podnieść parametry wysokiej dostępności za4. podsumowanie równo warstwy prezentacji i aplikacji jak i szczególnie nas interesującej warstwy bazodanowej. Wybór Jest dostępny szereg mechanizmów parametry w odpowiedniego mechanizmu podyktowany jestcały zarówno potrzebami danegopozwalających wdrożenia jak podnieść i budżetem. dostępności zarówno warstwy prezentacji i aplikacji jak i szczególnie Planując wysoką dostępność należy zadać sobie pytanie, jakie będą konsekwencje niedostępności apli- nas inter warstwy bazodanowej. Wybór odpowiedniego mechanizmu podyktowany jest z kacji. Istnieje wiele aplikacji, które przetwarzają dane w trybie asynchronicznym i niedostępność warpotrzebami danego wdrożenia budżetem. Planując wysoką dostępność należ stwy bazodanowej owocuje przyrostem długości kolejek czy tojak w iMsMQ, service broker, czy katalogu sobie pytanie, jakie będą konsekwencje niedostępności aplikacji. Istnieje wiele a na dysku oraz późniejszym przetworzeniem zgromadzonych danych. W takich przypadkach niedostępktóre przetwarzają dane w trybie asynchronicznym i niedostępność w ność warstwy bazodanowej jest akceptowalna przez czas niezbędny do odtworzenia serwera bazodanobazodanowej owocuje przyrostem długości kolejek czy to w MsMQ, service bro wego, który uległ awarii i można uznać, że koszty wdrożenia wysokiej dostępności są wyższe od potenkatalogu na dysku oraz późniejszym przetworzeniem zgromadzonych danych. W cjalnych strat wynikających z awarii pojedynczego serwera bazodanowego, zwłaszcza gdy nie grozi to kompromitacją w oczach klienta. Jednak istnieje wiele systemów, w których brak dostępności składnicy danych nawet przez krótki czas może spowodować nie tylko olbrzymie straty finansowe np. w wyniku wstrzymania sprzedaży w internetowym kanale dystrybucji, ale co często istotniejsze kompromitację w oczach klientów. Planując aplikacje biznesowe oprócz uwzględnienia mechanizmów wysokiej dostępności należy uwzględnić bezpieczeństwo danych. Mechanizmy wysokiej dostępności minimalizują konsekwencje pojedynczej awarii sprzętowej, czy aplikacyjnej, nie zapobiegają jednak wszystkim błędom użytkownika, czy złośliwym atakom w tym wirusom, które mogą być przyczyna skasowania lub podmiany danych. Należy więc rozważyć użycie dodatkowych mechanizmów kontrolnych takich jak np. logowanie transakcji za pomocą wyzwalaczy, cdc czy audytu w tym C2. Dodatkowo należy pamiętać o ryzyku zagłodzeniu instancji SQL przez zasobożerne zapytanie. Problem ten można zminimalizować poprzez użycia Resorce Governor. Innym problemem może być atak DDOS na warstwę prezentacji, który może doprowadzić do zablokowania usług poprzez przeciążenie zasobów. Masowy atak może być problemem nawet dla dużych farm serwerów, teoretycznie można użyć cloud computing, dzięki czemu potrzebne zasoby do obsłużenia ogromnej liczby zapytań mogą zostać dynamicznie przydzielone, należy jednak pamiętać, że w tym przypadku płacimy za zużytą moc obliczeniową, analogicznie jak płacimy wysoki rachunek za energię Mechanizmy zapewnienia wysokiej dostępności aplikacji wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL Bazy Danych i Business Intelligence 117 elektryczną po długotrwałym używaniu silnika wysokiej mocy, czy elektrycznym ogrzewaniu. Przy planowaniu rozwiązań o wysokiej dostępności należałoby uwzględnić detekcję takich ataków i ograniczenie przesyłania pakietów na ruterach brzegowych pochodzących od puli podejrzanych adresów IP. Np. dla aplikacji, gdzie zwykle dominują zapytania z Polski przy niewielkim udziale zapytań z UE nagle pojawiają się duże ilości pakietów z chińskich adresów IP. Planując wysoką dostępność aplikacji należy wiec uwzględnić bardzo wiele czynników. Wybrane mechanizmy zostały zaprezentowane w niniejszej pracy, które można uwzględnić przy projektowaniu nowych wdrożeń i modernizacji istniejących systemów.