Kontrol listesi: Azure VM’lerinde SQL Server için en iyi yöntemler

Şunlar için geçerlidir: Azure VM'de SQL Server

Bu makalede, Azure Sanal Makineler'de (VM) SQL Server'ınızın performansını iyileştirmeye yönelik bir dizi en iyi yöntem ve kılavuz olarak bir hızlı denetim listesi sağlanır.

Kapsamlı ayrıntılar için bu serideki diğer makalelere bakın: VM boyutu, Depolama, Güvenlik, HADR yapılandırması, Temel toplama.

Azure VM'lerinde SQL Server için SQL Değerlendirmesini etkinleştirdiğinizde SQL Server'ınız, Azure portalının SQL VM yönetim sayfasındaki sonuçlarla bilinen en iyi yöntemlere göre değerlendirilir.

SQL Server VM performansını iyileştirmeye ve yönetimi otomatikleştirmeye yönelik en son özellikler hakkında videolar için aşağıdaki Veri Kullanıma Sunulan videolarını gözden geçirin:

Genel bakış

Sql Server'ı Azure Sanal Makineler üzerinde çalıştırırken, şirket içi sunucu ortamlarında SQL Server için geçerli olan veritabanı performansı ayarlama seçeneklerini kullanmaya devam edin. Ancak, genel bir buluttaki ilişkisel veritabanının performansı, sanal makinenin boyutu ve veri disklerinin yapılandırması gibi birçok faktöre bağlıdır.

Genellikle maliyetleri iyileştirme ile performansı iyileştirme arasında bir denge vardır. Bu en iyi performans uygulamaları serisi, Azure Sanal Makineler'da SQL Server için en iyi performansı almaya odaklanmıştır. İş yükünüz daha az zorluysa, önerilen her iyileştirmeye ihtiyacınız olmayabilir. Bu önerileri değerlendirirken performans gereksinimlerinizi, maliyetlerinizi ve iş yükü desenlerinizi göz önünde bulundurun.

VM boyutu

Bu bölümdeki denetim listesi, Azure VM'lerinde SQL Server için VM boyutu en iyi yöntemlerini kapsar.

  • Ebdsv5 serisi, 8 bellek-sanal çekirdek oranıyla birlikte Azure'da en yüksek G/Ç aktarım hızı-sanal çekirdek oranı sağlar. Bu seri, Azure VM'lerindeki SQL Server iş yükleri için en iyi fiyat performansını sunar. Çoğu SQL Server iş yükü için önce bu seriyi göz önünde bulundurun.
  • E4ds_v5 veya üzeri gibi 4 veya daha fazla vCPU ile VM boyutlarını kullanın.
  • SQL Server iş yüklerinde en iyi performansı elde etmek amacıyla bellek için iyileştirilmiş sanal makine boyutlarını kullanın.
  • Edsv5 serisi ve Ebdsv5 serisi, Msv3 ve Mdsv3 serisi OLTP iş yükleri için gereken en uygun bellek-sanal çekirdek oranı sunar.
  • M serisi VM'ler, Azure'daki en yüksek bellek-sanal çekirdek oranı sunar. Görev açısından kritik OLTP ve veri ambarı iş yükleri için bu VM'leri göz önünde bulundurun.
  • SQL Server ayarları ve depolama seçenekleri en iyi performans için yapılandırıldığından SQL Server Sanal Makineler dağıtmak için Azure Market görüntüleri kullanın.
  • Hedef iş yükünün performans özelliklerini toplayın ve bunları kullanarak işletmeniz için uygun VM boyutunu belirleyin.
  • Mevcut SQL Server iş yükünüz için doğru VM boyutunu bulmak için Data Migration Yardımcısı ve SKU öneri araçlarını kullanın.
  • Azure'a geçiş yapmak için Azure Data Studio'yu kullanın.

Uyarı

SQL Server'ın NUMA düğümü başına 64 çekirdeği aşan sistemlere yüklenmesi şu anda desteklenmemektedir. Bu sınırlama şu anda Msv3 ve Mdsv3 Orta Bellek Serisi içindeki Standard_M176s_3_v3 ve Standard_M176s_4_v3 Azure Sanal Makine boyutları için geçerlidir.

Depolama

Bu bölümdeki denetim listesi, Azure VM'lerinde SQL Server için en iyi depolama yöntemlerini kapsar.

  • Uygulamayı izleyin ve disk türünü seçmeden önce SQL Server verileri, günlüğü ve dosyaları için depolama bant genişliği ve tempdb gecikme süresi gereksinimlerini belirleyin.
  • Varsa, D: yerel SSD biriminde verileri ve günlük dosyalarını yapılandırın.tempdb SQL IaaS Aracısı uzantısı, yeniden sağlama sırasında gereken klasörü ve izinleri işler.
  • Depolama performansını iyileştirmek için kullanılabilir en yüksek IOPS'yi planlayın ve veri okuma işlemleri için performans özelliği olarak veri önbelleğe alma özelliğini kullanırken sanal makine ve disklerin kaplanmasından kaçının.
  • Ebdsv5 veya Ebsv5 serisi SQL Server VM'lerini kullanırken en iyi fiyat performansı için Premium SSD v2 kullanın. Azure portalını (şu anda önizleme aşamasında) kullanarak SQL Server VM'nizi Premium SSD v2 ile dağıtabilirsiniz.
  • Verileri, günlüğü ve tempdb dosyaları ayrı sürücülere yerleştirin.
    • Veri sürücüsünde, önbellek desteğinin kullanılabilirliğini sağlamak için premium P30 ve P40 veya daha küçük diskler kullanın. Ebdsv5 VM serisini kullanırken, yüksek IOPS ve G/Ç aktarım hızı gerektiren iş yükleri için daha iyi fiyat performansı sağlayan Premium SSD v2'yi kullanın.
    • Premium SSD v2 veya Premium SSD P30 - P80 disklerini değerlendirirken kapasite ve test performansı ile maliyet karşılaştırması için günlük sürücüsü planı
    • En uygun VM boyutunu seçtikten sonra yük devretme kümesi örneğinin (FCI) parçası olmayan çoğu SQL Server iş yükü için geçici diske tempdb yerleştirin (geçici disk kısa ömürlüdür ve varsayılan D:\olarak ) .
    • Yük devretme kümesi örnekleri (FCI) için paylaşılan depolama alanına yerleştirin tempdb .
      • FCI iş yükü büyük ölçüde disk performansına tempdb bağımlıysa, FCI depolamanın parçası olmayan yerel kısa ömürlü SSD (varsayılan D:\) sürücüsünde gelişmiş bir yapılandırma yeri tempdb olarak. Bu sürücünün herhangi bir hatası FCI'dan eylem tetiklemeyeceğinden, yerel kısa ömürlü SSD (varsayılan D:\) sürücünün her zaman kullanılabilir olduğundan emin olmak için bu yapılandırma özel izleme ve eylem gerektirir.
  • G/Ç bant genişliğini hedef sanal makinenin IOPS ve aktarım hızı sınırlarına kadar artırmak için Depolama Alanları kullanarak birden çok Azure veri diskini çıkarın.
  • Veri dosyası diskleri için konak önbelleğini salt okunur olarak ayarlayın.
  • Günlük dosyası diskleri için konak önbelleğini yok olarak ayarlayın.
    • SQL Server verileri veya günlük dosyaları içeren disklerde okuma/yazma önbelleğe alma özelliğini etkinleştirmeyin.
    • Diskinizin önbellek ayarlarını değiştirmeden önce her zaman SQL Server hizmetini durdurun.
  • Azure Elastic SAN, birkaç farklı iş yükünü buluta geçirirken uygun maliyetli bir birleştirilmiş depolama çözümü olabilir. Ancak Azure Elastic SAN kullanırken, SQL Server iş yükleri için istenen IOPS/aktarım hızına ulaşmak için genellikle fazla sağlama kapasitesi gerekir. Genellikle tek SQL Server iş yükleri için uygun olmasa da, düşük performanslı iş yüklerini SQL Server ile birleştirirken uygun maliyetli bir çözüm elde edebilirsiniz.
  • Geliştirme ve test iş yükleri ve uzun süreli yedekleme arşivleme için standart depolamayı kullanmayı göz önünde bulundurun. Üretim iş yükleri için Standart HDD/SSD kullanılması önerilmez.
  • Kredi tabanlı Disk Seri Dağıtımı (P1-P20), yalnızca daha küçük geliştirme/test iş yükleri ve departman sistemleri için dikkate alınmalıdır.
  • Depolama performansını iyileştirmek için kullanılabilir en yüksek IOPS'yi planlayın ve veri okuma işlemleri için performans özelliği olarak veri önbelleğe alma özelliğini kullanırken sanal makine ve disklerin kısıtlanması/azaltmasını önleyin.
  • Veri diskinizi, geçici D:\ sürücü dışında bir sürücüye yerleştirilen tüm veri dosyaları için (varsayılan değeri 4 KB olan) 64 KB ayırma birimi boyutu kullanacak şekilde biçimlendirin. Azure Market aracılığıyla dağıtılan SQL Server VM'leri, depolama havuzu için ayırma birimi boyutu ve araya kaydetme ile biçimlendirilmiş veri diskleri 64 KB olarak ayarlanır.
  • Depolama hesabını SQL Server VM ile aynı bölgede yapılandırın.
  • Azure coğrafi olarak yedekli depolamayı (coğrafi çoğaltma) devre dışı bırakın ve depolama hesabında LRS (yerel yedekli depolama) kullanın.
  • Olası performans sorunlarını belirlemek ve SQL Server VM'nizin en iyi yöntemleri izleyecek şekilde yapılandırıldığını değerlendirmek için SQL En İyi Yöntemler Değerlendirmesi'ni etkinleştirin.
  • Depolama GÇ kullanım ölçümlerini kullanarak disk ve VM sınırlarını gözden geçirin ve izleyin.
  • Veri dosyaları, günlük dosyaları ve yedekleme dosyaları dahil olmak üzere SQL Server dosyalarını virüsten koruma yazılımı taramasından hariç tutun.

Güvenlik

Bu bölümdeki denetim listesi, Azure VM'lerinde SQL Server için en iyi güvenlik uygulamalarını kapsar.

SQL Server özellikleri ve özellikleri, altyapı düzeyindeki güvenlik özellikleriyle birleştirilebilen veritabanı düzeyinde verilerin güvenliğini sağlama yöntemleri sağlar. Bu özellikler birlikte bulut tabanlı ve hibrit çözümler için altyapı düzeyinde derinlemesine savunma sağlar. Buna ek olarak, Azure güvenlik önlemleriyle hassas verilerinizi şifrelemek, sanal makineleri virüslerden ve kötü amaçlı yazılımlardan korumak, ağ trafiğini güvenli hale getirmek, tehditleri tanımlayıp algılamak, uyumluluk gereksinimlerini karşılamak ve hibrit buluttaki tüm güvenlik gereksinimleri için tek bir yönetim ve raporlama yöntemi sağlamak mümkündür.

  • Veri ortamınızın güvenlik duruşunu geliştirmek için değerlendirmek ve eyleme geçmek için Bulut için Microsoft Defender kullanın. Azure Gelişmiş Tehdit Koruması (ATP) gibi özellikler, güvenlik değerlendirmesini geliştirmek ve risklere tepki verme olanağı sağlamak için hibrit iş yüklerinizde kullanılabilir. SQL Server VM'nizi SQL IaaS Aracısı uzantısına kaydetmek, Değerlendirmeleri Azure portalının SQL sanal makinesi kaynağında Bulut için Microsoft Defender ortaya çıkar.
  • Olası veritabanı güvenlik açıklarını bulmak ve azaltmak ve SQL Server örneğiniz ve veritabanı katmanınız için bir tehdit oluşturabilecek anormal etkinlikleri algılamak için SQL için Microsoft Defender'ı kullanın.
  • Güvenlik Açığı Değerlendirmesi, SQL Server ortamınızda olası riskleri keşfedebilen ve düzeltmeye yardımcı olabilecek SQL için Microsoft Defender'ın bir parçasıdır. Güvenlik durumunuz hakkında görünürlük sağlar ve güvenlik sorunlarını çözmek için eyleme dönüştürülebilir adımlar içerir.
  • Kullanımdaki verilerinizin ve bekleyen verilerin konak operatörü erişimine karşı korunmasını güçlendirmek için Azure gizli VM'lerini kullanın. Azure gizli VM'leri hassas verilerinizi bulutta güvenle depolamanıza ve katı uyumluluk gereksinimlerini karşılamanıza olanak sağlar.
  • SQL Server 2022 kullanıyorsanız SQL Server örneğine bağlanmak için Microsoft Entra kimlik doğrulamasını kullanmayı göz önünde bulundurun.
  • Azure Danışmanı , kaynak yapılandırmanızı ve kullanım telemetrinizi analiz eder ve ardından Azure kaynaklarınızın maliyet verimliliğini, performansını, yüksek kullanılabilirliğini ve güvenliğini artırmanıza yardımcı olabilecek çözümler önerir. Azure dağıtımlarınızı iyileştirmek için en iyi yöntemleri belirlemenize ve uygulamanıza yardımcı olması için sanal makine, kaynak grubu veya abonelik düzeyinde Azure Danışmanı'nı kullanın.
  • Uyumluluk ve güvenlik gereksinimleriniz kısa ömürlü (yerel olarak eklenmiş geçici) diskin şifrelenmesi de dahil olmak üzere şifreleme anahtarlarınızı kullanarak verileri uçtan uca şifrelemenizi gerektirdiğinde Azure Disk Şifrelemesi kullanın.
  • Yönetilen Diskler, azure depolama hizmeti şifrelemesi kullanılarak varsayılan olarak şifrelenir ve burada şifreleme anahtarları Azure'da depolanan Microsoft tarafından yönetilen anahtarlardır.
  • Yönetilen disk şifreleme seçeneklerinin karşılaştırması için yönetilen disk şifreleme karşılaştırma grafiğini gözden geçirin
  • Sanal makinelerinizde yönetim bağlantı noktaları kapatılmalıdır- Açık uzaktan yönetim bağlantı noktaları, sanal makinenizi İnternet tabanlı saldırılardan kaynaklanan yüksek risk düzeyine maruz bırakır. Bu saldırılar, makineye yönetici erişimi elde etmek için kimlik bilgilerini deneme yanılma girişiminde bulunur.
  • Azure sanal makineleri için tam zamanında (JIT) erişimi açma
  • Uzak Masaüstü Protokolü (RDP) üzerinden Azure Bastion kullanın.
  • Bağlantı noktalarını kilitleyin ve yalnızca kaynak IP adresine göre sunucu erişimi veren/reddeden yönetilen bir Hizmet Olarak Güvenlik Duvarı (FaaS) olan Azure Güvenlik Duvarı kullanarak gerekli uygulama trafiğine izin verin.
  • Azure Sanal Ağ'lerdeki Azure kaynaklarına ve kaynaklarından gelen ağ trafiğini filtrelemek için Ağ Güvenlik Gruplarını (NSG) kullanma
  • Sunucuları, web sunucuları ve veritabanı sunucuları gibi benzer işlevlere sahip benzer bağlantı noktası filtreleme gereksinimleriyle birlikte gruplandırmak için Uygulama Güvenlik Grupları'ndan faydalanabilirsiniz.
  • Web ve uygulama sunucuları için Azure Dağıtılmış Hizmet Reddi (DDoS) korumasını kullanın. DDoS saldırıları, ağ kaynaklarını bunaltacak ve tüketecek şekilde tasarlanmıştır ve bu da uygulamaların yavaş veya yanıt vermemeye başlamasına neden olur. Kullanıcı arabirimlerini hedeflemek için DDoS saldırılarında yaygın olarak görülür. Azure DDoS koruması, istenmeyen ağ trafiğini hizmet kullanılabilirliğini etkilemeden önce temizler
  • İşletim sistemi, makine ve ağ düzeylerindeki tehditleri ele almak için kötü amaçlı yazılımdan koruma, istenen durum, tehdit algılama, önleme ve düzeltmeye yardımcı olması için VM uzantılarını kullanın:
  • Ortamınıza uygulanabilecek iş kuralları oluşturmak için Azure İlkesi kullanın. Azure İlkeleri, bu kaynakların özelliklerini JSON biçiminde tanımlanan kurallarla karşılaştırarak Azure kaynaklarını değerlendirir.
  • Azure Blueprints de bulut mimarlarının ve merkezi bilgi teknolojisi gruplarının bir kuruluşun standartlarına, desenlerine ve gereksinimlerine uygun Azure kaynaklarından oluşan tekrarlanabilir bir küme tanımlamasını sağlar. Azure Blueprints, Azure İlkelerinden farklıdır.
  • Azure VM'lerinde SQL Server ile uyumlu FIPS olmak için Windows Server 2019 veya Windows Server 2022 kullanın.

SQL Server özellikleri

Aşağıda, SQL Server örneklerinizi üretimdeki bir Azure sanal makinesinde çalıştırırken SQL Server yapılandırma ayarları için en iyi yöntemlerin hızlı bir denetim listesi verilmiştir:

Azure özellikleri

Aşağıda, SQL Server'ınızı Azure VM'de çalıştırırken Azure'a özgü yönergeler için en iyi yöntemlerin hızlı bir denetim listesi verilmiştir:

HADR yapılandırması

Bu bölümdeki denetim listesi, Azure VM'lerinde SQL Server için hadr en iyi yöntemlerini kapsar.

Always On kullanılabilirlik grubu ve yük devretme kümesi örneği gibi yüksek kullanılabilirlik ve olağanüstü durum kurtarma (HADR) özellikleri, temel alınan Windows Server Yük Devretme Kümesi teknolojisini temel alır. HadR ayarlarınızı değiştirerek bulut ortamını daha iyi desteklemek için en iyi yöntemleri gözden geçirin.

Windows kümeniz için şu en iyi yöntemleri göz önünde bulundurun:

  • Azure Load Balancer'a veya dağıtılmış ağ adına (DNN) bağımlılığından kaçınmak için SQL Server VM'lerinizi mümkün olduğunda birden çok alt ağa dağıtarak trafiği HADR çözümünüzle yönlendirin.
  • Geçici ağ hatalarından veya Azure platformu bakımlarından kaynaklanan beklenmeyen kesintileri önlemek için kümeyi daha az agresif parametrelerle değiştirin. Daha fazla bilgi için bkz . sinyal ve eşik ayarları. Windows Server 2012 ve üzeri için aşağıdaki önerilen değerleri kullanın:
    • SameSubnetDelay: 1 saniye
    • SameSubnetThreshold: 40 sinyal
    • CrossSubnetDelay: 1 saniye
    • CrossSubnetThreshold: 40 sinyal
  • VM'lerinizi bir kullanılabilirlik kümesine veya farklı kullanılabilirlik alanlarına yerleştirin. Daha fazla bilgi edinmek için bkz . VM kullanılabilirlik ayarları.
  • Küme düğümü başına tek bir NIC kullanın.
  • Küme çekirdek oylamasını 3 veya daha fazla tek sayıda oy kullanacak şekilde yapılandırın. DR bölgelerine oy atayın.
  • Kaynak kısıtlamaları nedeniyle beklenmeyen yeniden başlatmaları veya yük devretmeleri önlemek için kaynak sınırlarını dikkatle izleyin.
    • İşletim sistemi, sürücüler ve SQL Server'ın en son derlemelerde olduğundan emin olun.
    • Azure VM'lerinde SQL Server performansını iyileştirin. Daha fazla bilgi edinmek için bu makaledeki diğer bölümleri gözden geçirin.
    • Kaynak sınırlarını önlemek için iş yükünü azaltın veya dağıtin.
    • Kısıtlamaları önlemek için daha yüksek sınırları olan bir VM'ye veya diske geçin.

SQL Server kullanılabilirlik grubunuz veya yük devretme kümesi örneğiniz için şu en iyi yöntemleri göz önünde bulundurun:

  • Sık sık beklenmeyen hatalarla karşılaşıyorsanız, bu makalenin geri kalanında açıklanan en iyi performans yöntemlerini izleyin.
  • SQL Server VM performansını iyileştirmek beklenmeyen yük devretme işlemlerinizi çözmezse, kullanılabilirlik grubu veya yük devretme kümesi örneği için izlemeyi gevşetmeyi göz önünde bulundurun. Ancak, bunu yapmak sorunun temel kaynağını ele almayabilir ve hata olasılığını azaltarak belirtileri maskeler. Yine de temel alınan kök nedeni araştırmanız ve ele almanız gerekebilir. Windows Server 2012 veya üzeri için aşağıdaki önerilen değerleri kullanın:
    • Kira zaman aşımı: En yüksek kira zaman aşımı değerini hesaplamak için şu denklemi kullanın:
      Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
      40 saniyeyle başlayın. Daha önce önerilen gevşek SameSubnetThreshold ve SameSubnetDelay değerleri kullanıyorsanız kiralama zaman aşımı değeri için 80 saniyeyi aşmayın.
    • Belirtilen dönemdeki en fazla hata sayısı: Bu değeri 6 olarak ayarlayın.
  • HADR çözümünüzle bağlantı kurmak için sanal ağ adı (VNN) ve Azure Load Balancer kullanırken, kümeniz yalnızca bir alt ağa yayılmış olsa bile bağlantı dizesi belirtinMultiSubnetFailover = true.
    • İstemci desteklemiyorsa MultiSubnetFailover = True , istemci kimlik bilgilerini daha kısa süreler için ayarlamanız RegisterAllProvidersIP = 0 ve HostRecordTTL = 300 önbelleğe almanız gerekebilir. Ancak, bunu yapmak DNS sunucusunda ek sorgulara neden olabilir.
  • Dağıtılmış ağ adını (DNN) kullanarak HADR çözümünüze bağlanmak için aşağıdakileri göz önünde bulundurun:
    • destekleyen bir istemci sürücüsü MultiSubnetFailover = Truekullanmanız ve bu parametrenin bağlantı dizesi olması gerekir.
    • Kullanılabilirlik grubu için DNN dinleyicisine bağlanırken bağlantı dizesi benzersiz bir DNN bağlantı noktası kullanın.
  • Yük dengeleyici veya DNN gereksinimini atlamak için temel kullanılabilirlik grubu için veritabanı yansıtma bağlantı dizesi kullanın.
  • Yanlış hizalanmış G/Ç'lerden kaçınmak için yüksek kullanılabilirlik çözümünüzü dağıtmadan önce VHD'lerinizin kesim boyutunu doğrulayın. Daha fazla bilgi edinmek için bkz . KB3009974 .
  • SQL Server veritabanı altyapısı, Always On kullanılabilirlik grubu dinleyicisi veya yük devretme kümesi örneği sistem durumu araştırması 49.152 ile 65.536 ( TCP/IP için varsayılan dinamik bağlantı noktası aralığı) arasında bir bağlantı noktası kullanacak şekilde yapılandırılmışsa, her bağlantı noktası için bir dışlama ekleyin. Bunu yapmak, diğer sistemlerin dinamik olarak aynı bağlantı noktasına atanmasını engeller. Aşağıdaki örnek, 59999 numaralı bağlantı noktası için bir dışlama oluşturur:
    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Performans sorunlarını giderme

Aşağıda, SQL Server performans sorunlarını daha fazla gidermenize yardımcı olan kaynakların listesi yer alır.

Azure VM'lerinde SQL Server için SQL Değerlendirmesini etkinleştirmeyi göz önünde bulundurun.

Azure'da SQL Server Sanal Makineler Genel Bakış sayfasında diğer SQL Server Sanal Makinesi makalelerini gözden geçirin. SQL Server sanal makineleri hakkında sorularınız olursa Sık Sorulan Sorular bölümüne bakın.