Lista kontrolna: najlepsze rozwiązania dotyczące programu SQL Server na maszynach wirtualnych platformy Azure

Dotyczy: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:

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.

  • Nowa seria Ebdsv5 zapewnia najwyższy współczynnik przepływności operacji we/wy na platformie Azure oraz stosunek pamięci do rdzeni wirtualnych równy 8. Ta seria oferuje najlepszą cenę dla obciążeń programu SQL Server na maszynach wirtualnych platformy Azure. Rozważmy pierwszą serię dla większości obciążeń programu SQL Server.
  • Użyj rozmiarów maszyn wirtualnych z co najmniej 4 procesorami wirtualnymi, takimi jak E4ds_v5 lub nowsza.
  • Użyj rozmiarów maszyn wirtualnych zoptymalizowanych pod kątem pamięci, aby uzyskać najlepszą wydajność obciążeń programu SQL Server.
  • Seria Edsv5, M-i mv2 oferują optymalny stosunek pamięci do rdzeni wirtualnych wymagany dla obciążeń OLTP.
  • Maszyny wirtualne serii M oferują najwyższy stosunek pamięci do rdzeni wirtualnych na platformie Azure. Rozważ te maszyny wirtualne dla obciążeń magazynu danych o znaczeniu krytycznym i magazynu danych.
  • Użyj obrazów witryny Azure Marketplace, aby wdrożyć maszyny wirtualne programu SQL Server, ponieważ ustawienia i opcje magazynu programu SQL Server są skonfigurowane pod kątem optymalnej wydajności.
  • Zbierz charakterystykę wydajności obciążenia docelowego i użyj ich do określenia odpowiedniego rozmiaru maszyny wirtualnej dla twojej firmy.
  • Użyj narzędzi rekomendacji Asystent migracji danych i jednostek SKU, aby znaleźć odpowiedni rozmiar maszyny wirtualnej dla istniejącego obciążenia programu SQL Server.
  • Migrowanie na platformę Azure przy użyciu narzędzia Azure Data Studio .

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 tempdbpliki 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).
  • Rozważ użycie elastycznej sieci SAN platformy Azure dla obciążeń programu SQL Server, aby uzyskać lepszą wydajność kosztową ze względu na konsolidację magazynu, udostępnioną wydajność dynamiczną i możliwość zwiększenia przepływności magazynu bez konieczności uaktualniania maszyny wirtualnej.
  • 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
    • 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 tempdbprogramu , rozważ zmianę rozmiaru maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Zasady buforowania plików danych.
    • 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 miejsce tempdb konfiguracji na lokalnym efemerycznym dysku SSD (domyślny D:\), 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ślny D:\) jest dostępny przez cały czas, ponieważ wszystkie awarie tego dysku nie będą wyzwalać akcji z wystąpienia klastra trybu failover.
  • 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.
  • 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ą metodę zabezpieczeń na poziomie danych i sposób zapewniania dogłębnej ochrony na poziomie infrastruktury dla rozwiązań opartych na chmurze i hybrydowych. 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. Skorzystaj z 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
  • Korzystaj z grup zabezpieczeń aplikacji, aby grupować serwery 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:
  • 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.

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:

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:

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 nie SameSubnetThresholdSameSubnetDelay przekraczasz 80 sekund dla wartości limitu czasu dzierżawy.
    • Maksymalna liczba niepowodzeń w określonym przedziale czasu: ustaw tę wartość na 6.
  • 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 ustawienie RegisterAllProvidersIP = 0 i HostRecordTTL = 300 buforowanie poświadczeń klienta przez krótszy czas. Jednak może to spowodować dodatkowe zapytania do serwera DNS.
  • 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 = Trueparametr , 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.
  • 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.

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.