SQL Server zapewnia nam szereg rozwiązań wysokiej dostępności i odzyskiwania po awarii, które pomagają w udostępnianiu danych obsługujących krytyczne systemy przez jak najdłuższy czas przy jak najmniejszym przestoju. Te rozwiązania wysokiej dostępności i odzyskiwania po awarii dostarczane przez Microsoft SQL Server są omówione w artykule Dziennik transakcji SQL Server i rozwiązania wysokiej dostępności.
W tym artykule pokażemy, jak skonfigurować i skonfigurować witrynę grupy dostępności oraz skonfigurować ją tak, aby spełniała wymagania firmy. Zacznijmy jednak od krótkiego omówienia funkcji Zawsze włączona grupa dostępności, aby się z nią zapoznać.
Przegląd
SQL Server Always-on Availability Group, wprowadzona w wersji SQL Server 2012, to rozwiązanie zapewniające wysoką dostępność i odzyskiwanie po awarii na poziomie przedsiębiorstwa, które jest oparte na funkcji Windows Server Failover Clustering, w której jedna lub wiele baz danych może działać jako jedna grupa dostępności i uległ awarii jako pojedyncza jednostka.
Grupa dostępności to kontener dla zestawu baz danych, które są hostowane w jednej replice podstawowej, zawiera kopię baz danych do odczytu i zapisu i synchronizowane z maksymalnie ośmioma replikami pomocniczymi, zawiera kopię tych baz danych tylko do odczytu.
Jako alternatywę dla funkcji dublowania bazy danych można użyć zawsze włączonej grupy dostępności w celu zmniejszenia obciążenia wystąpienia podstawowego przez skonfigurowanie replik pomocniczych do obsługi obciążeń tylko do odczytu i operacji tworzenia kopii zapasowych. W ten sposób zawsze włączona grupa dostępności może zostać wykorzystana do poprawy dostępności baz danych i zwiększenia wykorzystania zasobów SQL Server dla wszystkich replik.
Proces synchronizacji między replikami grup dostępności można przeprowadzić w jednym z dwóch obsługiwanych trybów dostępności:
- Tryb zatwierdzania synchronizacji :W tym trybie dostępności replika podstawowa będzie czekać na repliki pomocnicze, maksymalnie dwie synchroniczne repliki pomocnicze, aby potwierdzić zapis dziennika w pliku dziennika transakcji bazy danych, przed zatwierdzeniem go w replice podstawowej. Ten tryb dostępności zwiększa poziom dostępności danych w stosunku do ceny opóźnienia transakcji.
- Tryb zatwierdzania asynchronicznego :Ten tryb dostępności jest używany głównie do synchronizacji z replikami odzyskiwania po awarii, które są rozmieszczone w oddalonych centrach danych, gdzie replika podstawowa nie będzie czekać na repliki wtórne, w celu potwierdzenia zabezpieczenia dziennika w celu zatwierdzenia transakcji po stronie pierwotnej, zapewniając mniej danych poziom dostępności i mniejsze opóźnienia transakcji.
Proces przełączania awaryjnego Always-on Availability Groups, w którym podstawowa rola będzie zmieniana pomiędzy replikami, może być wykonywany ręcznie przez administratora bazy danych lub automatycznie przez sam SQL Server w przypadku awarii na poziomie serwera, biorąc pod uwagę, że przełączenie awaryjne nie nastąpi w przypadku jakichkolwiek problemów na poziomie bazy danych, takich jak uszkodzenie bazy danych.
Dla każdej grupy dostępności można utworzyć nazwę serwera, aby zapewnić klientom możliwość bezpośredniego łączenia się z repliką podstawową lub replikami tylko do odczytu bez przypominania bazowych nazw instancji SQL Server i ról w grupie dostępności. Ta nazwa serwera nazywa się Odbiornik grup dostępności .
Scenariusz demonstracyjny
Po krótkim wprowadzeniu do funkcji Zawsze włączona grupa dostępności jesteśmy gotowi do skonfigurowania grupy dostępności i jej prawidłowego skonfigurowania. W tym demo utworzymy grupę dostępności do replikacji bazy danych AdventureWorks2017 między dwoma wystąpieniami programu SQL Server; SQL1 i SQL2, z zainstalowanym już na tych serwerach SQL Server 2017.
W celach testowych i demonstracyjnych usługi SQL Server w instancjach SQL1 i SQL2 działają na koncie usługi ay\sqladmin, które ma odpowiednie uprawnienia w tych instancjach SQL Server.
Pierwsze kroki
Jak wspomniano w omówieniu tego artykułu, funkcja stałej grupy dostępności jest oparta na funkcji klastra trybu failover systemu Windows Server. Dlatego musimy utworzyć witrynę klastrów awaryjnych, w której zdefiniujemy witrynę grupy dostępności.
Utwórz klaster pracy awaryjnej
Przede wszystkim musimy się upewnić, że funkcja Failover Clustering jest zainstalowana we wszystkich replikach, które będą uczestniczyć w witrynie Availability Group. Można to zrobić, otwierając pulpit nawigacyjny Menedżera serwera w każdej replice i wybierając opcję Dodaj role i funkcje z menu Zarządzaj, a następnie zaznaczając i instalując Klaster pracy awaryjnej funkcja z tego kreatora, jak pokazano poniżej:
Po zainstalowaniu funkcji klastra pracy awaryjnej otwórz Menedżera klastra pracy awaryjnej w jednej z replik, używając autoryzowanego konta administratora lokalnego z uprawnieniami administratora domeny, które umożliwiają utworzenie tej nazwy klastra w active directory, i kliknij Utwórz klaster opcja, jak poniżej:
Z otwartego kreatora tworzenia klastra , sprawdź podane instrukcje w Zanim zaczniesz i kliknij Dalej aby kontynuować:
Na następnej stronie podaj nazwę lub adres IP replik, które będą uczestniczyć w grupie dostępności, a następnie kliknij Dalej, aby kontynuować:
Następnie należy określić, czy uruchomić test weryfikacyjny klastra, aby sprawdzić, czy zasoby dostępne na tych serwerach są zgodne z funkcją Failover Clustering, przed utworzeniem klastra pracy awaryjnej. Zawsze zaleca się wykonanie testu weryfikacyjnego na tym etapie przed próbą utworzenia witryny klastra pracy awaryjnej.
Spowoduje to przekierowanie do Kreatora weryfikacji konfiguracji . Na pierwszej stronie kreatora weryfikacji sprawdź instrukcje kreatora i kliknij Dalej aby kontynuować:
Następnie należy określić, czy uruchomić wszystkie walidacje klastra pracy awaryjnej, co jest opcją zalecaną, czy wybrać określone szybsze testy. W tej demonstracji skorzystamy z opcji zalecanej przez firmę Microsoft i przeprowadzimy wszystkie testy weryfikacyjne, a następnie klikniemy Dalej aby kontynuować:
Możesz także przejrzeć testy weryfikacyjne, które zostaną wykonane w tym kreatorze weryfikacji, i potwierdzić, aby kontynuować, klikając Dalej , w następujący sposób:
Po zakończeniu procesu walidacji możesz kliknąć przycisk Wyświetl raport, aby przejrzeć wynik testu weryfikacyjnego lub wyeksportować go do innego inżyniera, aby naprawić napotkany problem, lub kliknąć Zakończ bezpośrednio, aby rozpocząć proces tworzenia klastra, jak poniżej:
Na razie sprawdziliśmy, czy nasze serwery są zgodne z wymaganiami funkcji Failover Clustering i możemy nadal tworzyć witrynę Failover Clustering. W Punkcie dostępu do administrowania klastrem w oknie, podaj unikalną nazwę i adres IP dla klastra pracy awaryjnej, a następnie kliknij Dalej aby kontynuować:
Następnie przejrzyj podane przez siebie ustawienia tworzenia klastrów i pamiętaj, aby usunąć zaznaczenie obok Dodaj całą odpowiednią pamięć do klastra , ponieważ funkcja Zawsze włączona grupa dostępności działa przy użyciu dedykowanej pamięci masowej dla każdego serwera i NIE współdzielona pamięć masowa. Jeśli zgadzasz się z ustawieniami, kliknij Dalej aby kontynuować:
Po pomyślnym utworzeniu witryny Failover Clustering kreator powiadomi Cię komunikatem, że witryna Failover Clustering została całkowicie utworzona, jak poniżej:
Możesz sprawdzić, czy witryna klastra pracy awaryjnej została pomyślnie utworzona, otwierając Menedżera klastra pracy awaryjnej, który pokaże utworzoną witrynę klastra i wszystkie składniki tego klastra, jak pokazano poniżej:
Aby utrzymać witrynę klastra pracy awaryjnej w trybie najlepszej dostępności, należy skonfigurować Kworum klastra, które kontroluje, kiedy należy utrzymywać klaster pracy awaryjnej w trybie online lub w trybie offline na podstawie głosów węzłów i zasobów. Aby skonfigurować kworum klastra, kliknij prawym przyciskiem myszy nazwę klastra w menedżerze klastra pracy awaryjnej i wybierz Konfiguruj ustawienia kworum klastra opcja z Więcej działań menu, jak poniżej. Aby uzyskać szczegółowe informacje na temat ustawień kworum, które obsługują funkcję Zawsze włączona grupa dostępności, sprawdź Tryby kworum klastra trybu failover systemu Windows w grupach dostępności zawsze włączonych programu SQL Server:
Włącz funkcję zawsze włączonej grupy dostępności
Po utworzeniu klastra pracy awaryjnej, nad którą zostanie utworzona grupa dostępności, musimy włączyć funkcję stałej grupy dostępności i połączyć ją z witryną klastra pracy awaryjnej, która będzie używana.
Aby włączyć funkcję Always-on Availability Group, otwórz Menedżer konfiguracji SQL Server -> Usługi SQL Server, a następnie kliknij prawym przyciskiem myszy usługę SQL Server i wybierz opcję Właściwości. W oknie właściwości usługi SQL Server przejdź do opcji Zawsze włączona i sprawdź „Włącz zawsze włączone grupy dostępności ”, pod automatycznie wykrytą nazwą klastra pracy awaryjnej, jak pokazano poniżej:
Weź pod uwagę, że ta zmiana powinna zostać wykonana na wszystkich replikach, które będą należeć do grupy dostępności i zacznie obowiązywać po ponownym uruchomieniu usługi SQL Server, jak poniżej:
Utwórz nową, zawsze aktywną grupę dostępności
Po włączeniu funkcji Always-on Availability Group zaczniemy tworzyć nową grupę dostępności, rozwijając węzeł Always-on High Availability w Eksploratorze obiektów SSMS, a następnie kliknij prawym przyciskiem myszy węzeł Grupy dostępności i wybierz Nowy Kreator grup dostępności , jak pokazano poniżej:
Pierwsza strona kreatora nowej grupy dostępności to strona Wprowadzenie, na której można znaleźć krótki opis kroków, które zostaną wykonane w tym kreatorze w celu utworzenia nowej grupy dostępności. Przejrzyj dostarczone podsumowanie, a następnie kliknij Dalej aby kontynuować:
W Określ opcje grupy dostępności w oknie, musisz określić nazwę grupy dostępności, typ klastra, w oparciu o wersję SQL Server i system operacyjny używany w replikach, gdzie możesz wybrać klaster awaryjny Windows Server , inne niż Windows ZEWNĘTRZNE klaster lub BRAK jeśli nie jest używany żaden klaster.
Ta strona umożliwia również włączenie wykrywania stanu na poziomie bazy danych opcja, która sprawdza, kiedy baza danych nie jest już w stanie online i wykonuje automatyczne przełączanie awaryjne grupy dostępności i włącza transakcje rozproszone w grupach dostępności dla każdej bazy danych, jak pokazano poniżej:
Następnie musisz wybrać bazy danych, które będą uczestniczyć w tej grupie dostępności. Kreator sprawdzi żądania wstępne dotyczące bazy danych w celu dodania jej do grupy Dostępność, w tym model pełnego odzyskiwania bazy danych oraz czy z tej bazy danych jest tworzona pełna kopia zapasowa przed jej dodaniem. Po spełnieniu wymagań dotyczących baz danych, które mają zostać uwzględnione, odśwież listę baz danych, sprawdź bazę danych, a następnie kliknij Dalej aby kontynuować:
Na następnej stronie w sekcji Repliki , musisz dodać wszystkie repliki programu SQL Server, które będą uczestniczyć w tej grupie dostępności i będą hostować kopię z dołączonych baz danych. Po dodaniu replik można wybrać maksymalnie trzy wystąpienia, które mają być skonfigurowane w trybie dostępności zatwierdzania synchronicznego i zezwolić na automatyczne przełączanie awaryjne między tymi replikami a pozostałymi replikami, które zostaną skonfigurowane w trybie zatwierdzania asynchronicznego. Możesz również zdecydować, czy skonfigurować każdą replikę jako pomocniczą do odczytu dla połączeń tylko do odczytu, czy replikę do odczytu, aby obsługiwać obciążenie tylko do odczytu kierowane automatycznie przez odbiornik, jak pokazano poniżej:
W zakładce Endpoints należy sprawdzić ustawienia punktów końcowych połączeń, które będą używane do komunikacji pomiędzy replikami, gdzie należy upewnić się, że używany port TCP jest włączony w regułach zapory dla wszystkich replik oraz czy podane konto usługi Połącz uprawnienia w punkcie końcowym replik, jak poniżej:
Na karcie Preferencje tworzenia kopii zapasowych należy określić lokalizację, w której będą wykonywane zadania kopii zapasowej w grupie dostępności. Umożliwia wykonanie automatycznej kopii zapasowej z repliki pomocniczej jako preferowanej opcji, pomocniczej jako koniecznej, podstawowej jako koniecznej lub w dowolnej replice. W oparciu o tę opcję możesz utworzyć plan konserwacji, aby wykonać kopię zapasową z baz danych należących do grupy dostępności, jak poniżej:
W tym samym oknie można również zdefiniować ustawienia detektora grupy dostępności na stronie Odbiornik lub kontynuować bez tworzenia detektora na razie i wykonać tworzenie później. W tym demo skonfigurujemy słuchacza po utworzeniu grupy dostępności, jak pokazano poniżej:
Ponadto można użyć strony Routing tylko do odczytu, aby zdefiniować listę routingu tylko do odczytu, która jest używana do kontrolowania obciążenia tylko do odczytu w ramach pomocniczych. Aby uzyskać więcej informacji, zobacz Jak skonfigurować routing tylko do odczytu dla grupy dostępności w SQL Server 2016:
Na kolejnej stronie należy określić mechanizm, który będzie używany do wstępnej synchronizacji danych pomiędzy repliką podstawową i wtórną, z możliwością wykonania synchronizacji automatycznie lub ręcznie poprzez dołączenie wtórnej do grupy dostępności i synchronizację baz danych później ręcznie.
W tym kreatorze dostępne są dwie automatyczne metody synchronizacji, pierwsza to określenie folderu współdzielonego do tymczasowego kopiowania pełnych kopii zapasowych i dziennika transakcji oraz automatycznego przywracania, z których będziemy korzystać w tym demo, lub użyj metody bezpośredniego wysiewu bez wykonywanie kopii zapasowej, zgodnie z opisem w grupie dostępności Always On SQL Server 2016 z bezpośrednim siewem:
Aby korzystać z Pełnej kopii zapasowej bazy danych i dziennika metody, musimy utworzyć folder współdzielony i zapewnić konta usług SQL Server dla replik uprawnień do odczytu i zapisu w tym folderze, jak pokazano poniżej:
Następnie kreator nowej grupy dostępności wykona sprawdzenie poprawności dla całej konfiguracji przed kontynuowaniem procesu tworzenia grupy dostępności. Jeśli wystąpi jakiś błąd, możesz go naprawić bezpośrednio, a następnie odśwież stronę i kliknij Dalej aby kontynuować:
Na ostatnim etapie kreator przedstawi podsumowanie wszystkich konfiguracji kreatora, aby je przejrzeć, a następnie kliknąć Zakończ aby rozpocząć tworzenie grupy dostępności, jak poniżej:
Po zakończeniu kreatora pokaże wynik każdego kroku i czy wystąpi jakiś błąd. W przeciwnym razie zostanie wyświetlony komunikat, że grupa dostępności została pomyślnie utworzona bez problemu, jak pokazano poniżej:
Możesz również sprawdzić, czy grupa zawsze włączona dostępność została pomyślnie utworzona i skonfigurowana za pomocą Eksploratora obiektów SSMS, sprawdzając, czy uczestniczące bazy danych są w stanie zsynchronizowanym we wszystkich replikach oraz czy repliki i bazy danych są w trybie online w obszarze Zawsze włączone. Węzeł wysokiej dostępności, jak pokazano poniżej:
Możesz również połączyć się z repliką podstawową, ze słowem Podstawowa obok nazwy grupy dostępności i sprawdzić stronę właściwości grupy dostępności, z możliwością wykonywania tych samych zadań, które wykonaliśmy w Kreatorze nowej grupy dostępności, takich jak dodawanie nowych replik , dodanie nowej bazy danych, zmiana konfiguracji każdej repliki, zmiana preferencji tworzenia kopii zapasowych i zdefiniowanie listy routingu tylko do odczytu, jak pokazano poniżej:
Utwórz zawsze włączony odbiornik grupy dostępności
Ostatnim krokiem podczas konfigurowania grupy dostępności jest utworzenie detektora grupy dostępności, który będzie używany podczas łączenia się z repliką podstawową i dodatkową bez określania nazwy repliki.
Aby utworzyć odbiornik grupy dostępności, kliknij prawym przyciskiem myszy węzeł Odbiornik grupy dostępności pod utworzonym węzłem grupy dostępności i wybierz Dodaj odbiornik opcja. Z otwartego Odbiornika nowej grupy dostępności w oknie, podaj nazwę tego słuchacza, port TCP, który będzie używany do połączenia z tym słuchaczem i statyczny adres IP, który zostanie przypisany do słuchacza, a następnie kliknij OK by go stworzyć. Po pomyślnym utworzeniu odbiornika okno zostanie automatycznie zamknięte, a nazwa słuchacza zostanie wyświetlona w węźle Listener, jak pokazano poniżej:
Aby połączyć się z Grupą Dostępności przy użyciu nazwy odbiornika, podaj nazwę lub adres IP odbiornika z numerem portu TCP w Połącz z serwerem i połączy się on bezpośrednio z węzłem podstawowym, jak pokazano poniżej:
Testowy proces przełączania awaryjnego
Po przetestowaniu połączenia z odbiornikiem grupy dostępności i replikami, musimy wykonać ważny test przełączania awaryjnego, aby upewnić się, że podstawowa rola zostanie przeniesiona między replikami bez żadnych problemów oraz że bazy danych będą dostępne i w stan synchronizacji po przełączeniu awaryjnym.
Aby wykonać ręczne przełączanie awaryjne, kliknij prawym przyciskiem myszy nazwę grupy dostępności i wybierz Przełączanie awaryjne opcja, jak poniżej:
Pierwsza strona w Grupie dostępności przełączania awaryjnego kreator to strona Wprowadzenie, która zawiera podsumowanie działań, które można wykonać w tym kreatorze. Zapoznaj się ze wstępem i kliknij Dalej aby kontynuować:
Na następnej stronie wybierz węzeł, który będzie działał jako nowa replika podstawowa, upewniając się, że po wykonaniu operacji przełączania awaryjnego nie nastąpi utrata danych, a następnie kliknij Dalej, aby kontynuować:
Następnie należy połączyć się z nową wybraną repliką główną, aby upewnić się, że ta replika jest online i osiągalna, jak pokazano poniżej:
Następnie przejrzyj swoje wybory w kreatorze przełączania awaryjnego na stronie podsumowania i kliknij przycisk Zakończ, aby rozpocząć proces przełączania awaryjnego:
Po zakończeniu przełączania awaryjnego przejrzyj stronę wyników, aby upewnić się, że nie ma problemu podczas przełączania awaryjnego, jak poniżej:
W Eksploratorze obiektów SSMS rola repliki SQL1 zostanie zmieniona bezpośrednio na Wtórna, jak pokazano poniżej:
W tym artykule szczegółowo opisaliśmy kroki, które należy wykonać, aby przygotować się do utworzenia witryny grupy dostępności oraz jak utworzyć i skonfigurować witrynę zawsze włączonej grupy dostępności. W następnym artykule zobaczymy, jak rozwiązywać problemy, które możesz napotkać w istniejącej witrynie grupy dostępności. Bądź na bieżąco.