Lista kontrolna: najlepsze rozwiązania dotyczące programu SQL Server na maszynach wirtualnych platformy Azure
Dotyczy:program SQL Server na maszynie wirtualnej platformy Azure
Ten artykuł zawiera szybką listę kontrolną jako serię najlepszych rozwiązań i wytycznych dotyczących optymalizacji wydajności programu SQL Server na maszynach wirtualnych platformy Azure.
Aby uzyskać szczegółowe informacje, zobacz inne artykuły z tej serii: rozmiar maszyny wirtualnej, magazyn, zabezpieczenia, konfiguracja usługi HADR, Zbieranie punktu odniesienia.
Włącz ocenę SQL dla programu SQL Server na maszynach wirtualnych platformy Azure, a program SQL Server zostanie oceniony pod kątem znanych najlepszych rozwiązań z wynikami na stronie zarządzania maszynami wirtualnymi SQL w witrynie Azure Portal.
Aby uzyskać filmy o najnowszych funkcjach do optymalizacji wydajności SQL Server VM i automatyzacji zarządzania, zapoznaj się z poniższymi filmami Data Exposed:
- Buforowanie i ograniczanie przechowywania
- Automatyzowanie zarządzania za pomocą rozszerzenia agenta IaaS programu SQL Server
- Śledzenie kondycji pamięci podręcznej maszyny wirtualnej za pomocą metryk usługi Azure Monitor
- Uzyskaj najlepszy stosunek ceny do wydajności dla obciążeń SQL Server na maszynach wirtualnych Azure
- Używanie narzędzia PerfInsights do oceny kondycji zasobów i rozwiązywania problemów
- Najlepsza wydajność cenowa z serii Ebdsv5
- Optymalnie skonfiguruj program SQL Server na maszynach wirtualnych platformy Azure przy użyciu oceny SQL
- Nowe i ulepszone środowisko wdrażania i zarządzania serwerem SQL na maszynach wirtualnych platformy Azure
Omówienie
Podczas uruchamiania programu SQL Server na maszynach wirtualnych platformy Azure kontynuuj korzystanie z tych samych opcji dostrajania wydajności bazy danych, które mają zastosowanie do programu SQL Server w środowiskach serwera lokalnego. Jednak wydajność relacyjnej bazy danych w chmurze publicznej zależy od wielu czynników, takich jak rozmiar maszyny wirtualnej i konfiguracji dysków danych.
Zazwyczaj istnieje kompromis między optymalizacją kosztów a optymalizacją pod kątem wydajności. Ta seria najlepszych rozwiązań dotyczących wydajności koncentruje się na uzyskaniu najlepszej wydajności dla programu SQL Server w usłudze Azure Virtual Machines. Jeśli obciążenie jest mniej wymagające, możesz nie wymagać każdej zalecanej optymalizacji. Podczas oceniania tych zaleceń należy wziąć pod uwagę wymagania dotyczące wydajności, kosztów i wzorców obciążeń.
Rozmiar maszyny wirtualnej
Lista kontrolna w tej sekcji obejmuje najlepsze rozwiązania dotyczące rozmiaru maszyny wirtualnej dla programu SQL Server na maszynach wirtualnych platformy Azure.
- Zidentyfikuj charakterystykę wydajności obciążeń, aby określić odpowiedni rozmiar maszyny wirtualnej dla twojej firmy.
- Jeśli przeprowadzasz migrację na platformę Azure, użyj narzędzi, takich jak Asystent migracji danych i rekomendacja SKU, aby znaleźć odpowiedni rozmiar maszyny wirtualnej dla istniejącego obciążenia programu SQL Server, a następnie dokonaj migracji za pomocą Azure Data Studio.
- Użyj obrazów z Azure Marketplace, aby wdrożyć maszyny wirtualne SQL Server, ponieważ ustawienia SQL Server i opcje magazynu są skonfigurowane z myślą o optymalnej wydajności.
- Użyj rozmiarów maszyn wirtualnych z co najmniej 4 procesorami wirtualnymi.
- Użyj rozmiarów maszyn wirtualnych zoptymalizowanych pod kątem pamięci, aby uzyskać najlepszą wydajność obciążeń programu SQL Server.
- Seria Edsv5 i seria Msv3 oraz Mdsv3 oferują optymalny stosunek pamięci do rdzeni wirtualnych zalecany dla obciążeń OLTP.
- Maszyny wirtualne z serii Mbdsv3 oferują najlepszą wydajność obciążeń programu SQL Server na maszynach wirtualnych platformy Azure. Rozważ tę serię w pierwszej kolejności dla obciążeń OLTP o krytycznym znaczeniu oraz SQL Server magazynu danych.
- Seria Ebdsv5-series zapewnia wysoki stosunek przepustowości we/wy do rdzeni wirtualnych oraz stosunek pamięci do rdzeni wirtualnych równy 8:1. Ta seria oferuje najlepszą cenę dla obciążeń programu SQL Server na maszynach wirtualnych platformy Azure. Rozważ najpierw te maszyny wirtualne dla większości obciążeń programu SQL Server.
- Rodzina serii M oferuje maszyny wirtualne z najwyższą alokacją pamięci na platformie Azure.
- Maszyny wirtualne serii Mbsv3 i Mbdsv3 zapewniają wysoką alokację pamięci i najwyższy współczynnik przepływności operacji we/wy do rdzeni wirtualnych w rodzinie serii M oraz spójny stosunek pamięci do rdzeni wirtualnych wynoszący co najmniej 8:1.
- Rozpocznij środowiska programistyczne od serii niższej klasy, takich jak seria D, B-Series lub Av2, i rozwijaj swoje środowisko z czasem.
Przechowywanie
Lista kontrolna w tej sekcji obejmuje najlepsze rozwiązania dotyczące magazynu dla programu SQL Server na maszynach wirtualnych platformy Azure.
- Monitoruj aplikację i określ wymagania dotyczące przepustowości i opóźnienia magazynu dla danych, dziennika i
tempdb
plików programu SQL Server przed wybraniem typu dysku. - Jeśli są dostępne, skonfiguruj
tempdb
pliki danych i logów na lokalnym woluminie dysku D: SSD. Rozszerzenie agenta IaaS SQL zarządza folderem i uprawnieniami wymaganymi podczas ponownej aprowizacji. - Aby zoptymalizować wydajność magazynowania, zaplanuj najwyższą możliwą liczbę operacji we/wy na sekundę bez buforowania i użyj buforowania danych jako funkcji poprawiającej wydajność przy odczytach danych, unikając ograniczania wydajności maszyn wirtualnych i dysków.
- W przypadku korzystania z maszyn wirtualnych z serii Ebdsv5 lub Ebsv5 programu SQL Server użyj Premium SSD v2, aby uzyskać najlepszą wydajność cenową. Maszynę wirtualną SQL Server można wdrożyć przy użyciu dysków Premium SSD w wersji 2 za pośrednictwem Azure Portal (obecnie w wersji zapoznawczej).
- Umieść dane, dzienniki i
tempdb
pliki na oddzielnych dyskach.- W przypadku dysku danych użyj dysków Premium P30 lub P40, albo mniejszych, aby zapewnić obsługę pamięci podręcznej. W przypadku korzystania z Ebdsv5 VM series, użyj Premium SSD v2, która zapewnia lepszy stosunek ceny do wydajności dla obciążeń wymagających wysokiej przepustowości i wydajności operacji we/wy.
- Dysponowanie dyskiem dziennika do oceny pojemności i wydajności testów w zestawieniu z kosztami, przy jednoczesnym ocenianiu dysków SSD Premium w wersji 2 lub Premium SSD P30 – P80
- Jeśli wymagane jest opóźnienie magazynu submillisekundowe, użyj dysków SSD w warstwie Premium w wersji 2 lub dysków ultra platformy Azure dla dziennika transakcji.
- W przypadku wdrożeń maszyn wirtualnych serii M należy rozważyć użycie akceleratora zapisu zamiast dysków Ultra w Azure.
- Umieść bazę danych tempdb na dysku tymczasowym (dysk tymczasowy jest efemeryczny i domyślnie ma
D:\
wartość ) dla większości obciążeń programu SQL Server, które nie są częścią wystąpienia klastra trybu failover (FCI) po wybraniu optymalnego rozmiaru maszyny wirtualnej.- Jeśli pojemność dysku lokalnego nie jest wystarczająca dla
tempdb
, rozważ zwiększenie rozmiaru VM. Aby uzyskać więcej informacji, zobacz Zasady buforowania plików danych.
- Jeśli pojemność dysku lokalnego nie jest wystarczająca dla
- W przypadku wystąpień klastra trybu failover (FCI) umieść
tempdb
na magazynie udostępnionym.- Jeśli obciążenie FCI silnie zależy od
tempdb
wydajności dysku, to jako zaawansowaną konfigurację umieśćtempdb
na lokalnym efemerycznym dysku SSD (domyślnyD:\
), który nie jest częścią magazynu FCI. Niniejsza konfiguracja wymaga niestandardowego monitorowania i działań, aby upewnić się, że lokalny dysk SSD efemeryczny (domyślnyD:\
) jest dostępny przez cały czas, ponieważ wszelkie awarie tego dysku nie zainicjują działań ze strony klastra FCI.
- Jeśli obciążenie FCI silnie zależy od
- Paskuj wiele dysków danych platformy Azure przy użyciu Przestrzeni magazynowej, aby zwiększyć przepustowość I/O do limitu IOPS i przepływności maszyny wirtualnej.
- Ustaw buforowanie hosta na do odczytu (tylko) dla dysków plików danych.
- Ustaw buforowanie hosta na brak dla dysków plików dziennika.
- Nie włączaj buforowania odczytu/zapisu na dyskach zawierających dane lub pliki dziennika programu SQL Server.
- Przed zmianą ustawień pamięci podręcznej dysku zawsze zatrzymaj usługę SQL Server.
- Podczas migracji kilku różnych obciążeń do chmury usługa Azure Elastic SAN może być opłacalnym rozwiązaniem magazynu skonsolidowanego. Jednak w przypadku korzystania z elastycznej sieci SAN platformy Azure osiągnięcie żądanej liczby IOPS i przepustowości dla obciążeń programu SQL Server często wymaga nadmiernej aprowizacji pojemności. Chociaż nie jest to zwykle odpowiednie dla pojedynczych obciążeń programu SQL Server, można uzyskać ekonomiczne rozwiązanie podczas łączenia obciążeń o niskiej wydajności z programem SQL Server.
- W przypadku obciążeń programistycznych i testowych oraz długoterminowego archiwizowania kopii zapasowych należy rozważyć użycie magazynu standardowego. Nie zaleca się używania standardowych dysków HDD/SSD do obciążeń produkcyjnych.
- Rozszerzenie dysku oparte na kredytach (P1-P20) powinno być brane pod uwagę tylko w przypadku mniejszych obciążeń deweloperskich i systemów działowych.
- Aby zoptymalizować wydajność magazynu, zaplanuj największą liczbę dostępnych operacji we/wy na sekundę bez buforowania i użyj buforowania danych jako funkcji wydajności dla odczytów danych, unikając jednocześnie ograniczania/ograniczania maszyn wirtualnych i dysków.
- Sformatuj dysk danych, aby użyć rozmiaru jednostki alokacji 64 KB dla wszystkich plików danych umieszczonych na dysku innym niż dysk tymczasowy
D:\
(który ma domyślnie 4 KB). Maszyny wirtualne programu SQL Server wdrożone za pośrednictwem witryny Azure Marketplace zawierają dyski danych sformatowane z rozmiarem jednostki alokacji i przeplatane dla puli magazynów ustawionej na 64 KB. - Skonfiguruj konto magazynu w tym samym regionie co maszyna wirtualna SQL Server.
- Wyłącz geograficznie nadmiarowy magazyn platformy Azure (replikacja geograficzna) i użyj magazynu LRS (magazyn lokalnie nadmiarowy) na koncie magazynowym.
- Włącz ocenę najlepszych rozwiązań SQL, aby zidentyfikować możliwe problemy z wydajnością i ocenić, czy maszyna wirtualna z programem SQL Server jest skonfigurowana do stosowania najlepszych rozwiązań.
- Przeglądaj i monitoruj limity dysków oraz maszyn wirtualnych, korzystając z metryk wykorzystania magazynu IO.
- Wyklucz pliki programu SQL Server ze skanowania oprogramowania antywirusowego, w tym pliki danych, pliki dziennika i pliki kopii zapasowej.
Zabezpieczenia
Lista kontrolna w tej sekcji obejmuje najlepsze rozwiązania dotyczące zabezpieczeń programu SQL Server na maszynach wirtualnych platformy Azure.
Funkcje i możliwości programu SQL Server zapewniają metody zabezpieczania danych na poziomie bazy danych, które można łączyć z funkcjami zabezpieczeń na poziomie infrastruktury. Te funkcje zapewniają szczegółową ochronę na poziomie infrastruktury dla rozwiązań hybrydowych i opartych na chmurze. Ponadto dzięki środkom zabezpieczeń platformy Azure można szyfrować poufne dane, chronić maszyny wirtualne przed wirusami i złośliwym oprogramowaniem, zabezpieczać ruch sieciowy, identyfikować i wykrywać zagrożenia, spełniać wymagania dotyczące zgodności oraz zapewniać jedną metodę administrowania i raportowania wszelkich potrzeb związanych z zabezpieczeniami w chmurze hybrydowej.
- Użyj Microsoft Defender dla Chmury, aby ocenić i podjąć działania w celu poprawy stanu zabezpieczeń środowiska danych. Możliwości, takie jak Usługa Azure Advanced Threat Protection (ATP), mogą być używane w ramach obciążeń hybrydowych w celu poprawy oceny zabezpieczeń i zapewnienia możliwości reagowania na zagrożenia. Zarejestrowanie maszyny wirtualnej SQL Server przy użyciu rozszerzenia agenta IaaS SQL spowoduje wyświetlanie ocen Microsoft Defender dla Chmury w zasobie maszyny wirtualnej SQL w portalu Azure.
- Usługa Microsoft Defender for SQL umożliwia odnajdywanie i eliminowanie potencjalnych luk w zabezpieczeniach bazy danych, a także wykrywanie nietypowych działań, które mogą wskazywać na zagrożenie dla wystąpienia programu SQL Server i warstwy bazy danych.
- Ocena luk w zabezpieczeniach jest częścią usługi Microsoft Defender for SQL , która umożliwia odnajdywanie i korygowanie potencjalnych zagrożeń dla środowiska programu SQL Server. Zapewnia wgląd w stan zabezpieczeń i obejmuje kroki umożliwiające podjęcie działań w celu rozwiązania problemów z zabezpieczeniami.
- Użyj poufnych maszyn wirtualnych Azure, aby wzmocnić ochronę danych podczas użytkowania i przechowywania danych przed dostępem operatora hosta. Poufne maszyny wirtualne platformy Azure umożliwiają pewnie przechowywanie poufnych danych w chmurze i spełnianie rygorystycznych wymagań dotyczących zgodności.
- Jeśli korzystasz z programu SQL Server 2022, rozważ użycie uwierzytelniania Microsoft Entra w celu nawiązania połączenia z wystąpieniem programu SQL Server.
- Usługa Azure Advisor analizuje konfigurację zasobów i dane telemetryczne użycia, a następnie zaleca rozwiązania, które mogą pomóc w zwiększeniu efektywności kosztowej, wydajności, wysokiej dostępności i zabezpieczeń zasobów platformy Azure. Użyj usługi Azure Advisor na poziomie maszyny wirtualnej, grupy zasobów lub subskrypcji, aby ułatwić identyfikowanie i stosowanie najlepszych rozwiązań w celu zoptymalizowania wdrożeń platformy Azure.
- Należy skorzystać z usługi Azure Disk Encryption, gdy wasze wymagania dotyczące zgodności i zabezpieczeń wymagają całkowitego szyfrowania danych za pomocą waszych kluczy szyfrowania, w tym szyfrowania tymczasowego (lokalnie dołączonego) dysku.
- Dyski zarządzane są domyślnie szyfrowane w spoczynku przy użyciu szyfrowania usługi Azure Storage, gdzie klucze szyfrowania są kluczami zarządzanymi przez firmę Microsoft przechowywanymi na platformie Azure.
- Aby zapoznać się z porównaniem opcji szyfrowania dysków zarządzanych, zapoznaj się z wykresem porównania szyfrowania dysków zarządzanych
- Porty zarządzania powinny być zamknięte na maszynach wirtualnych — otwarte porty zarządzania zdalnego narażają Twoją maszynę wirtualną na wysoki poziom ryzyka związanego z atakami internetowymi. Te ataki próbują wymusić na nich poświadczenia, aby uzyskać dostęp administratora do maszyny.
- Włącz Just-in-Time dla maszyn wirtualnych platformy Azure
- Użyj usługi Azure Bastion za pośrednictwem protokołu RDP (Remote Desktop Protocol).
- Zablokuj porty i zezwalaj tylko na wymagany ruch aplikacji przy użyciu usługi Azure Firewall , która jest zarządzaną zaporą jako usługą (FaaS), która udziela/odmawia dostępu serwera na podstawie źródłowego adresu IP.
- Używanie sieciowych grup zabezpieczeń do filtrowania ruchu sieciowego do i z zasobów platformy Azure w sieciach wirtualnych platformy Azure
- Grupy zabezpieczeń aplikacji umożliwiają grupowanie serwerów wraz z podobnymi wymaganiami dotyczącymi filtrowania portów z podobnymi funkcjami, takimi jak serwery internetowe i serwery baz danych.
- Do ochrony serwerów sieci Web i aplikacji używaj Azure Distributed Denial of Service (DDoS) protection. Ataki DDoS są przeznaczone do przeciążenia i wyczerpania zasobów sieciowych, dzięki czemu aplikacje działają wolno lub nie odpowiadają. Często zdarza się, że ataki DDoS są przeznaczone dla interfejsów użytkownika. Usługa Azure DDoS Protection oczyszcza niepożądany ruch sieciowy, zanim wpłynie to na dostępność usługi
- Rozszerzenia maszyn wirtualnych ułatwiają rozwiązywanie problemów z złośliwym oprogramowaniem, żądanym stanem, wykrywaniem zagrożeń, zapobieganiem i korygowaniem w celu rozwiązania zagrożeń na poziomie systemu operacyjnego, maszyny i sieci:
- Rozszerzenie konfiguracji gościa wykonuje operacje inspekcji i konfiguracji wewnątrz maszyn wirtualnych.
- Rozszerzenie maszyny wirtualnej agenta usługi Network Watcher dla systemów Windows i Linux monitoruje wydajność sieci, diagnostykę oraz analitykę, co umożliwia monitorowanie sieci platformy Azure.
- Rozszerzenie microsoft antimalware dla systemu Windows , które pomaga identyfikować i usuwać wirusy, programy szpiegujące i inne złośliwe oprogramowanie z konfigurowalnymi alertami.
- Ocena rozszerzeń innych firm, takich jak Symantec Endpoint Protection dla maszyny wirtualnej z systemem Windows (/azure/virtual-machines/extensions/symantec)
- Użyj usługi Azure Policy , aby utworzyć reguły biznesowe, które można zastosować do danego środowiska. Zasady platformy Azure oceniają zasoby platformy Azure, porównując właściwości tych zasobów z regułami zdefiniowanymi w formacie JSON.
- Usługa Azure Blueprints umożliwia architektom chmury i centralnym grupom technologii informatycznych zdefiniowanie powtarzalnego zestawu zasobów platformy Azure, który implementuje standardy, wzorce i wymagania organizacji oraz jest z nimi zgodny. Usługa Azure Blueprints różni się od zasad platformy Azure.
- Użyj systemu Windows Server 2019 lub Windows Server 2022 do zapewnienia zgodności ze standardem FIPS z programem SQL Server na maszynach wirtualnych platformy Azure.
Funkcje programu SQL Server
Poniżej przedstawiono szybką listę kontrolną najlepszych rozwiązań dotyczących ustawień konfiguracji programu SQL Server podczas uruchamiania wystąpień programu SQL Server na maszynie wirtualnej platformy Azure w środowisku produkcyjnym:
- Włącz kompresję strony bazy danych, jeśli jest to odpowiednie.
- Włącz kompresję kopii zapasowej.
- Włącz natychmiastowe inicjowanie plików dla plików danych.
- Ogranicz automatyczne zwiększanie bazy danych.
- Wyłącz automatyczne zmniejszanie bazy danych.
- Wyłącz automatyczne zamykanie bazy danych.
- Przenieś wszystkie bazy danych na dyski danych, w tym systemowe bazy danych.
- Zmień lokalizację katalogów dziennika błędów i plików śledzenia programu SQL Server na dyski danych.
- Skonfiguruj domyślne lokalizacje kopii zapasowych i plików bazy danych.
- Ustaw maksymalny limit pamięci programu SQL Server, aby pozostawić wystarczającą ilość pamięci dla systemu operacyjnego. (Użyj pamięci\dostępnych bajtów , aby monitorować kondycję pamięci systemu operacyjnego).
- Włącz blokowanie stron w pamięci.
- Włącz optymalizację dla obciążeń adhoc w środowiskach o dużym obciążeniu transakcjami OLTP.
- Oceń i zastosuj najnowsze aktualizacje zbiorcze dla zainstalowanych wersji programu SQL Server.
- Włącz magazyn zapytań we wszystkich produkcyjnych bazach danych programu SQL Server zgodnie z najlepszymi rozwiązaniami.
- Włącz automatyczne dostrajanie w bazach danych aplikacji o znaczeniu krytycznym.
- Upewnij się, że zostały spełnione wszystkie najlepsze rozwiązania dotyczące bazy danych tempdb.
- Użyj zalecanej liczby plików, korzystając z wielu plików
tempdb
danych, zaczynając od jednego pliku na rdzeń, do ośmiu plików. - Jeśli to możliwe, skonfiguruj
tempdb
pliki danych i dziennika na lokalnym woluminie D: dysku SSD. Rozszerzenie agenta SQL IaaS obsługuje folder i uprawnienia potrzebne podczas ponownego konfigurowania. - Planowanie zadań agenta programu SQL Server w celu uruchamiania zadań DBCC CHECKDB, reorganizacji indeksu, ponownego kompilowania indeksu i aktualizowania statystyk .
- Monitorowanie kondycji i rozmiaru pliku dziennika transakcji programu SQL Server i zarządzanie nim.
- Skorzystaj z wszelkich nowych funkcji programu SQL Server dostępnych dla używanej wersji.
- Należy pamiętać o różnicach w obsługiwanych funkcjach między wersjami, które rozważasz podczas wdrażania.
- Wyklucz pliki programu SQL Server ze skanowania oprogramowania antywirusowego. Obejmuje to pliki danych, pliki dziennika i pliki kopii zapasowej.
Funkcje platformy Azure
Poniżej przedstawiono szybką listę kontrolną najlepszych rozwiązań dotyczących wskazówek specyficznych dla platformy Azure podczas uruchamiania programu SQL Server na maszynie wirtualnej platformy Azure:
- Zarejestruj się przy użyciu rozszerzenia agenta SQL IaaS, aby odblokować szereg korzyści funkcjonalności.
- Użyj najlepszej strategii tworzenia kopii zapasowych i przywracania dla obciążenia programu SQL Server.
- Upewnij się, że przyspieszona sieć jest włączona na maszynie wirtualnej.
- Użyj Microsoft Defender dla Chmury, aby poprawić ogólny stan zabezpieczeń wdrożenia maszyny wirtualnej.
- Użyj Microsoft Defender dla Chmury zintegrowanego z Microsoft Defender dla Chmury, w celu uzyskania określonego pokrycia maszyn wirtualnych programu SQL Server, w tym ocen luk w zabezpieczeniach i dostępu just in time, co zmniejsza usługę ataku, umożliwiając uprawnionym użytkownikom dostęp do maszyn wirtualnych w razie potrzeby. Aby dowiedzieć się więcej, zobacz oceny luk w zabezpieczeniach, włączanie ocen luk w zabezpieczeniach dla maszyn wirtualnych SQL Server oraz dostęp just-in-time.
- Usługa Azure Advisor umożliwia rozwiązywanie problemów z wydajnością, kosztami, niezawodnością, doskonałością operacyjną i zaleceniami dotyczącymi zabezpieczeń.
- Usługa Azure Monitor służy do zbierania, analizowania i działania na danych telemetrycznych ze środowiska programu SQL Server. Obejmuje to identyfikowanie problemów z infrastrukturą dotyczących szczegółowych informacji o maszynie wirtualnej i danych monitorowania za pomocą usługi Log Analytics w celu uzyskania dokładniejszej diagnostyki.
- Włącz Autoshutdown dla środowisk deweloperskich i testowych.
- Zaimplementuj rozwiązanie o wysokiej dostępności i odzyskiwaniu po awarii (HADR), które spełnia twoje umowy SLA dotyczące ciągłości działalności biznesowej, zobacz opcje usługi HADR dostępne dla programu SQL Server na maszynach wirtualnych platformy Azure.
- Użyj witryny Azure Portal (pomocy technicznej i rozwiązywania problemów), aby ocenić kondycję zasobów i historię; w razie potrzeby prześlij nowe żądania pomocy technicznej.
Konfiguracja usługi HADR
Lista kontrolna w tej sekcji obejmuje najlepsze rozwiązania dotyczące usługi HADR dla programu SQL Server na maszynach wirtualnych platformy Azure.
Funkcje wysokiej dostępności i odzyskiwania po awarii (HADR), takie jak Always On grupa dostępności i instancja klastra awaryjnego przełączania, opierają się na podstawowej technologii klastra awaryjnego przełączania systemu Windows Server. Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi modyfikowania ustawień usługi HADR, aby lepiej obsługiwać środowisko chmury.
W przypadku klastra systemu Windows należy wziąć pod uwagę następujące najlepsze rozwiązania:
- Wdróż maszyny wirtualne programu SQL Server w wielu podsieciach, jeśli to możliwe, aby uniknąć zależności od usługi Azure Load Balancer lub rozproszonej nazwy sieci (DNN), aby kierować ruch do rozwiązania HADR.
- Zmień klaster na mniej agresywne parametry, aby uniknąć nieoczekiwanych awarii sieci przejściowych lub konserwacji platformy Azure. Aby dowiedzieć się więcej, zobacz ustawienia pulsu i progu. W przypadku systemu Windows Server 2012 i nowszych użyj następujących zalecanych wartości:
- SameSubnetDelay: 1 sekunda
- SameSubnetThreshold: 40 pulsów
- CrossSubnetDelay: 1 sekunda
- CrossSubnetThreshold: 40 pulsów
- Umieść maszyny wirtualne w zestawie dostępności lub w różnych strefach dostępności. Aby dowiedzieć się więcej, zobacz Ustawienia dostępności maszyn wirtualnych.
- Użyj jednej karty sieciowej na każdy węzeł klastra.
- Skonfiguruj kworum głosowania klastra, aby używać nieparzystej liczby głosów, co najmniej 3. Nie przypisuj głosów regionom odzyskiwania po awarii.
- Uważnie monitoruj limity zasobów, aby uniknąć nieoczekiwanych ponownych uruchomień lub trybu failover z powodu ograniczeń zasobów.
- Upewnij się, że system operacyjny, sterowniki i program SQL Server mają najnowsze kompilacje.
- Optymalizowanie wydajności programu SQL Server na maszynach wirtualnych platformy Azure. Zapoznaj się z innymi sekcjami w tym artykule, aby dowiedzieć się więcej.
- Zmniejsz lub rozłóż obciążenie, aby uniknąć limitów zasobów.
- Przejdź do maszyny wirtualnej lub dysku o wyższych limitach, aby uniknąć ograniczeń.
W przypadku grupy dostępności programu SQL Server lub wystąpienia klastra trybu failover należy wziąć pod uwagę następujące najlepsze rozwiązania:
- Jeśli występują częste nieoczekiwane błędy, postępuj zgodnie z najlepszymi rozwiązaniami dotyczącymi wydajności opisanymi w pozostałej części tego artykułu.
- Jeśli optymalizacja wydajności maszyny wirtualnej z programem SQL Server nie rozwiąże problemów z nieoczekiwanymi przełączeniami awaryjnymi, rozważ złagodzenie monitorowania dla grupy dostępności lub wystąpienia klastra failover. Jednak może to nie rozwiązać problemu źródłowego źródła problemu i może maskować objawy, zmniejszając prawdopodobieństwo awarii. Nadal może być konieczne zbadanie i rozwiązanie źródłowej głównej przyczyny. W przypadku systemu Windows Server 2012 lub nowszego użyj następujących zalecanych wartości:
-
Limit czasu dzierżawy: użyj tego równania, aby obliczyć maksymalną wartość limitu czasu dzierżawy:
Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay)
.
Zacznij od 40 sekund. Jeśli używasz wcześniej zalecanych wartościSameSubnetThreshold
iSameSubnetDelay
, nie przekraczaj 80 sekund dla wartości limitu czasu dzierżawy. - Maksymalna liczba niepowodzeń w określonym przedziale czasu: ustaw tę wartość na 6.
-
Limit czasu dzierżawy: użyj tego równania, aby obliczyć maksymalną wartość limitu czasu dzierżawy:
- W przypadku używania nazwy sieci wirtualnej (VNN) i usługi Azure Load Balancer do łączenia się z rozwiązaniem HADR określ
MultiSubnetFailover = true
w parametry połączenia, nawet jeśli klaster obejmuje tylko jedną podsieć.- Jeśli klient nie obsługuje
MultiSubnetFailover = True
, może być konieczne ustawienieRegisterAllProvidersIP = 0
iHostRecordTTL = 300
do buforowania poświadczeń klienta na krótsze okresy. Jednak może to spowodować dodatkowe zapytania do serwera DNS.
- Jeśli klient nie obsługuje
- Aby nawiązać połączenie z rozwiązaniem HADR przy użyciu nazwy sieci rozproszonej (DNN), rozważ następujące kwestie:
- Należy użyć sterownika klienta obsługującego
MultiSubnetFailover = True
, a ten parametr musi znajdować się w ciągu połączenia. - Użyj unikatowego portu DNN w ciągu połączenia podczas nawiązywania połączenia z odbiornikiem DNN dla grupy dostępności.
- Należy użyć sterownika klienta obsługującego
- Użyj ciągu połączenia dublowania bazy danych dla podstawowej grupy dostępności, aby pominąć potrzebę równoważenia obciążenia lub dynamicznej nazwy sieciowej.
- Przed wdrożeniem rozwiązania o wysokiej dostępności zweryfikuj rozmiar sektora dysków VHD, aby uniknąć nieprawidłowego dopasowywania operacji we/wy. Aby dowiedzieć się więcej, zobacz KB3009974 .
- Jeśli silnik bazy danych SQL Server, odbiornik grupy Always On dostępności lub kontrola kondycji wystąpienia klastra trybu failover są skonfigurowane do używania portu z zakresu od 49 152 do 65 536 (domyślny zakres portów dynamicznych dla protokołu TCP/IP), należy dodać wykluczenie dla każdego z tych portów. Dzięki temu inne systemy nie będą dynamicznie przypisywane tego samego portu. Poniższy przykład tworzy wykluczenie dla portu 59999:
netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent
Rozwiązywanie problemów z wydajnością
Poniżej znajduje się lista zasobów, które ułatwiają dalsze rozwiązywanie problemów z wydajnością programu SQL Server.
- Rozwiązywanie problemów z wysokim użyciem procesora
- Omówienie i rozwiązywanie problemów z blokowaniem
- Rozwiązywanie problemów z wolno działającymi zapytaniami
- Rozwiązywanie problemów z niską wydajnością spowodowanych problemami z we/wy
- Rozwiązywanie problemów z błędami limitu czasu zapytania
- Rozwiązywanie problemów z brakiem pamięci lub małą ilością pamięci
- Pulpit nawigacyjny wydajności zapewnia szybki wgląd w stan wydajności programu SQL Server.
Powiązana zawartość
Rozważ włączenie Oceny SQL dla programu SQL Server na maszynach wirtualnych Azure.
Przeglądaj inne artykuły dotyczące maszyn wirtualnych SQL Server w SQL Server on Azure Virtual Machines Overview (Omówienie SQL Server na maszynach wirtualnych Azure). Jeśli masz pytania dotyczące maszyn wirtualnych programu SQL Server, zobacz Często zadawane pytania.