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 wideo dotyczące najnowszych funkcji w celu zoptymalizowania wydajności maszyny wirtualnej z programem SQL Server i automatyzowania zarządzania nimi, zapoznaj się z następującymi filmami wideo uwidocznionych w danych:
- Buforowanie i ograniczanie magazynu
- 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
- Uzyskiwanie najlepszej ceny dla obciążeń programu SQL Server na maszynie wirtualnej platformy 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 maszyną wirtualną platformy Azure w programie SQL Server
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 Data Asystent migracji i zalecenie dotyczące jednostki SKU, aby znaleźć odpowiedni rozmiar maszyny wirtualnej dla istniejącego obciążenia programu SQL Server, a następnie zmigruj je za pomocą narzędzia Azure Data Studio.
- Użyj obrazów witryny Azure Marketplace, aby wdrożyć maszyny wirtualne z programem SQL Server, ponieważ ustawienia programu SQL Server i opcje magazynu są skonfigurowane pod kątem 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, a seria Msv3 i Mdsv3 oferuje 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ż pierwszą serię dla obciążeń OLTP i SQL Server magazynu danych o krytycznym znaczeniu.
- Seria Ebdsv5 zapewnia wysoki współczynnik przepływnoś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 z niższej warstwy serii D, B-Series lub Av2 i zwiększ swoje środowisko wraz z upływem czasu.
Storage
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 jest dostępna, skonfiguruj
tempdb
pliki danych i dziennika na woluminie D: lokalnego dysku SSD. Rozszerzenie agenta IaaS sql obsługuje folder i uprawnienia wymagane podczas ponownej aprowizacji. - 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 ograniczania liczby maszyn wirtualnych i dysków.
- W przypadku korzystania z maszyn wirtualnych z serii Ebdsv5 lub Ebsv5 programu SQL Server użyj dysków SSD w warstwie Premium w wersji 2 , aby uzyskać najlepszą wydajność cenową. Maszynę wirtualną programu SQL Server można wdrożyć przy użyciu dysków SSD w warstwie Premium w wersji 2 przy użyciu witryny 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 i P40 lub mniejszych , aby zapewnić dostępność obsługi pamięci podręcznej. W przypadku korzystania z serii maszyn wirtualnych Ebdsv5 użyj dysków SSD w warstwie Premium w wersji 2 , która zapewnia lepszą wydajność cenową dla obciążeń wymagających wysokiej przepływności operacji we/wy i operacji we/wy.
- Plan dysku dziennika dla wydajności i testowania wydajności i kosztów podczas oceny dysków SSD w warstwie Premium w wersji 2 lub Premium SSD P30 – P80
- Jeśli wymagane jest opóźnienie magazynu w milisekundach, użyj dysków SSD w warstwie Premium w wersji 2 lub Ultra platformy Azure dla dziennika transakcji.
- W przypadku wdrożeń maszyn wirtualnych serii M należy rozważyć użycie akceleratora zapisu za pomocą dysków w warstwie Ultra platformy 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
programu , rozważ zmianę rozmiaru maszyny wirtualnej. 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ść je
tempdb
w magazynie udostępnionym.- Jeśli obciążenie klastra trybu failover jest silnie zależne od
tempdb
wydajności dysku, to jako zaawansowane miejscetempdb
konfiguracji na lokalnym efemerycznym dysku SSD (domyślnyD:\
), który nie jest częścią magazynu wystąpienia klastra trybu failover. Ta konfiguracja wymaga niestandardowego monitorowania i akcji, aby upewnić się, że lokalny dysk SSD efemeryczny (domyślnyD:\
) jest dostępny przez cały czas, ponieważ wszystkie awarie tego dysku nie będą wyzwalać akcji z wystąpienia klastra trybu failover.
- Jeśli obciążenie klastra trybu failover jest silnie zależne od
- Usuń wiele dysków danych platformy Azure przy użyciu Miejsca do magazynowania, aby zwiększyć przepustowość operacji we/wy do limitu liczby operacji we/wy docelowej maszyny wirtualnej i limitów przepływności.
- Ustaw buforowanie hostów na tylko do odczytu dla dysków plików danych.
- Ustaw buforowanie hosta na wartość none 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 przepływności/liczby operacji we/wy na sekundę 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 dysków HDD/SSD w warstwie Standardowa w przypadku obciążeń produkcyjnych.
- Skalowanie dysku opartego na kredytach (P1-P20) powinno być brane pod uwagę tylko w przypadku mniejszych obciążeń deweloperskich/testowych i systemów działów.
- 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 z programem SQL Server.
- Wyłącz magazyn geograficznie nadmiarowy platformy Azure (replikacja geograficzna) i użyj magazynu LRS (magazyn lokalnie nadmiarowy) na koncie magazynu.
- 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ń.
- Przejrzyj i monitoruj limity dysków i maszyn wirtualnych przy użyciu metryk użycia operacji we/wy magazynu.
- 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 z programem SQL Server przy użyciu rozszerzenia agenta IaaS SQL spowoduje Microsoft Defender dla Chmury oceny w zasobie maszyny wirtualnej SQL w witrynie Azure Portal.
- 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żywanie poufnych maszyn wirtualnych platformy Azure w celu wzmocnienia ochrony danych w użyciu 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.
- Użyj usługi Azure Disk Encryption , gdy zgodność i zabezpieczenia wymagają szyfrowania danych za pomocą kluczy szyfrowania, w tym szyfrowania efemerycznego (lokalnie dołączonego tymczasowego) 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 — otwórz porty zarządzania zdalnego, aby uwidocznić maszynę wirtualną na wysokim poziomie ryzyka związanego z atakami internetowymi. Te ataki próbują wymusić na nich poświadczenia, aby uzyskać dostęp administratora do maszyny.
- Włączanie dostępu just in time (JIT) 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.
- W przypadku serwerów sieci Web i aplikacji ochrona przed rozproszoną odmową usługi (DDoS) platformy Azure. 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ę i usługę analizy, która 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.
- Przenieś katalogi plików dziennika błędów programu SQL Server i śledzenia 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 strony blokady w pamięci.
- Włącz optymalizację pod kątem obciążeń adhoc w środowiskach o dużym obciążeniu 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, używając wielu
tempdb
plików danych, zaczynając od jednego pliku na rdzeń, do ośmiu plików. - Jeśli jest dostępna, skonfiguruj
tempdb
pliki danych i dziennika na woluminie D: lokalnego dysku SSD. Rozszerzenie agenta IaaS sql obsługuje folder i uprawnienia wymagane podczas ponownej aprowizacji. - 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 IaaS sql, aby odblokować szereg korzyści z funkcji.
- 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 z programem SQL Server i 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 zawsze włączona grupa dostępności i wystąpienie klastra trybu failover, opierają się na podstawowej technologii klastra trybu failover 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 węzeł klastra.
- Skonfiguruj głosowanie kworum klastra, aby używać co najmniej 3 liczby głosów nieparzyszonych. Nie przypisuj głosów do regionów 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, 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 nieoczekiwanym trybem failover, rozważ złagodzenie monitorowania dla grupy dostępności lub wystąpienia klastra trybu 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ści i nieSameSubnetThreshold
SameSubnetDelay
przekraczasz 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
buforowanie poświadczeń klienta przez krótszy czas. 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
parametr , a ten parametr musi znajdować się w parametry połączenia. - Użyj unikatowego portu nazwy sieci rozproszonej w parametry połączenia podczas nawiązywania połączenia z odbiornikiem sieci rozproszonej dla grupy dostępności.
- Należy użyć sterownika klienta obsługującego
- Użyj dublowania bazy danych parametry połączenia dla podstawowej grupy dostępności, aby pominąć potrzebę modułu równoważenia obciążenia lub nazwy sieci rozproszonej.
- 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 aparat bazy danych programu SQL Server, odbiornik zawsze włączonej grupy dostępności lub sonda 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), dodaj wykluczenie dla każdego portu. 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 CPU
- 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 platformy Azure.
Zapoznaj się z innymi artykułami maszyny wirtualnej programu SQL Server w artykule SQL Server on Azure Virtual Machines Overview (Omówienie programu SQL Server w usłudze Azure Virtual Machines). Jeśli masz pytania dotyczące maszyn wirtualnych programu SQL Server, zobacz Często zadawane pytania.