Udostępnij za pośrednictwem


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:

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ń.

Ręczne instalowanie programu SQL Server na maszynie wirtualnej platformy Azure

Jeśli planujesz ręcznie zainstalować program SQL Server na maszynie wirtualnej platformy Azure, rozważ następujące kwestie:

  • Upewnij się, że masz klucz produktu gotowy do instalacji.
  • Avoid unsupported configurations such as:
    • More than 64 vCores per NUMA node.
    • Storage with 8-KB sector size.
    • Zestawy skalowania maszyn wirtualnych Azure.
  • Jeśli jeszcze nie istnieją, utwórz foldery dla plików instalacyjnych i danych programu SQL Server przed uruchomieniem nośnika instalacyjnego.
  • Skopiuj nośnik instalacyjny na dysk lokalny zamiast instalować bezpośrednio z zainstalowanego obrazu ISO.
  • After installation, register your SQL Server VM with the SQL Server IaaS Agent Extension to automate management tasks.
  • Place the tempdb database on the local SSD ephemeral storage when possible.

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.
  • Use Azure Marketplace images to deploy your SQL Server VMs as the SQL Server settings and storage options are configured for optimal performance.
  • Use VM sizes with 4 or more vCPUs.
  • 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. Consider this series first for mission critical OLTP and data warehouse SQL Server workloads.
    • 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.
  • Sprawdź możliwości obsługi maszyn wirtualnych, aby uniknąć nieobsługiwanych konfiguracji.

Ostrożność

SQL Server isn't supported on VM sizes that deploy with an uninitialized ephemeral disk. Aby dowiedzieć się więcej, zapoznaj się z tematem Wdrażanie maszyn wirtualnych i błędy programu SQL Server.

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 jest dostępna, skonfiguruj tempdb pliki danych i dziennika na woluminie D: lokalnego dysku SSD podczas wdrażania nowej maszyny wirtualnej lub po zainstalowaniu programu SQL Server ręcznie. Rozszerzenie agenta IaaS SQL zarządza folderem i uprawnieniami wymaganymi podczas ponownej aprowizacji.
  • To optimize storage performance, plan for highest uncached IOPS available and use data caching as a performance feature for data reads while avoiding virtual machine and disks capping.
  • 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).
  • If your workload requires more than 160,000 IOPS, use Premium SSD v2 or Azure Ultra Disks.
  • 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.
    • For the log drive plan for capacity and test performance versus cost while evaluating either Premium SSD v2 or Premium SSD P30 - P80 disks
    • Umieść bazę danych tempdb na dysku tymczasowym (dysk tymczasowy jest efemeryczny i domyślnie ustawiony na D:\) dla większości obciążeń SQL Server, które nie są częścią obiektu 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.
    • For failover cluster instances (FCI) place tempdb on the shared storage.
      • If the FCI workload is heavily dependent on tempdb disk performance, then as an advanced configuration place tempdb on the local ephemeral SSD (default D:\) drive, which isn't part of FCI storage. This configuration needs custom monitoring and action to ensure the local ephemeral SSD (default D:\) drive is available all the time as any failures of this drive won't trigger action from FCI.
  • Stripe multiple Azure data disks using Storage Spaces to increase I/O bandwidth up to the target virtual machine's IOPS and throughput limits.
  • Set host caching to read-only for data file disks.
  • Set host caching to none for log file disks.
    • 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.
  • Credit-based Disk Bursting (P1-P20) should only be considered for smaller dev/test workloads and departmental systems.
  • To optimize storage performance, plan for highest uncached IOPS available, and use data caching as a performance feature for data reads while avoiding virtual machine and disks capping/throttling.
  • 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 SQL Server wdrożone za pośrednictwem Azure Marketplace są wyposażone w dyski danych, które są sformatowane z rozmiarem jednostki alokacji i przeplotem dla puli magazynowej ustawionym na 64 KB.
  • Configure the storage account in the same region as the SQL Server VM.
  • Disable Azure geo-redundant storage (geo-replication) and use LRS (local redundant storage) on the storage account.
  • 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. Registering your SQL Server VM with the SQL IaaS Agent extension surfaces Microsoft Defender for Cloud assessments within the SQL virtual machine resource of the 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.
  • Use Azure confidential VMs to reinforce protection of your data in-use, and data-at-rest against host operator access. Poufne maszyny wirtualne platformy Azure umożliwiają pewnie przechowywanie poufnych danych w chmurze i spełnianie rygorystycznych wymagań dotyczących zgodności.
  • If you're on SQL Server 2022, consider using Microsoft Entra authentication to connect to your instance of 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. These attacks attempt to brute force credentials to gain admin access to the machine.
  • Turn on Just-in-time (JIT) access for Azure virtual machines
  • 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:
  • 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:

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.

High availability and disaster recovery (HADR) features, such as the Always On availability group and the failover cluster instance rely on underlying Windows Server Failover Cluster technology. 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) w celu kierowania ruchu do rozwiązania HA/DR.
  • 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 heartbeats
    • CrossSubnetDelay: 1 sekunda
    • CrossSubnetThreshold: 40 heartbeats
  • 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.
  • Use a single NIC per cluster node.
  • Configure cluster quorum voting to use 3 or more odd number of votes. Don't assign votes to DR regions.
  • 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ń.

For your SQL Server availability group or failover cluster instance, consider these best practices:

  • 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.
  • If optimizing SQL Server VM performance doesn't resolve your unexpected failovers, consider relaxing the monitoring for the availability group or failover cluster instance. 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. If you're using the relaxed SameSubnetThreshold and SameSubnetDelay values recommended previously, don't exceed 80 seconds for the lease timeout value.
    • 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 do buforowania poświadczeń klienta na krótsze okresy. 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:
    • You must use a client driver that supports MultiSubnetFailover = True, and this parameter must be in the connection string.
    • Use a unique DNN port in the connection string when connecting to the DNN listener for an availability group.
  • Use a database mirroring connection string for a basic availability group to bypass the need for a load balancer or DNN.
  • Validate the sector size of your VHDs before deploying your high availability solution to avoid having misaligned I/Os. Aby dowiedzieć się więcej, zobacz KB3009974 .
  • If the SQL Server database engine, Always On availability group listener, or failover cluster instance health probe are configured to use a port between 49,152 and 65,536 (the default dynamic port range for TCP/IP), add an exclusion for each port. 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 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.