Aracılığıyla paylaş


Always On kullanılabilirlik grupları için kiralama, küme ve durum kontrolü zaman aşımlarının işleyişi ve yönergeleri

Donanım, yazılım ve küme yapılandırmaları arasındaki farkların yanı sıra çalışma süresi ve performans için farklı uygulama gereksinimleri, kira, küme ve sistem durumu denetim zaman aşımı değerleri için belirli bir yapılandırma gerektirir. Bazı uygulamalar ve iş yükleri, ciddi arızaların ardından servis kesintisini sınırlamak için daha agresif izleme gerektirir. Diğerleri, geçici ağ sorunlarına ve yüksek kaynak kullanımına bağlı beklemelere daha fazla tolerans gösterilmesini gerektirir ve daha yavaş yük devretme işlemlerine razıdır.

Her düğümdeki birden çok hizmet hataları algılamak için çalışır. Küme hizmeti çoğunluk kaybını algılayabilir, kaynak DLL'i Always On sağlık algılaması tarafından ortaya çıkarılan bir sorunu algılayabilir veya doğrudan birincil örnekte el ile yük devretme başlatılabilir. Küme hizmeti, kaynak konağı ve SQL Server örneği RPC, paylaşılan bellek ve T-SQL aracılığıyla birbirleriyle eşitlenir. Çoğu senaryoda, bu hizmetler başarıyla iletişim kurar, ancak bu iletişim aynı makinedeki hizmetler arasında bile mükemmel bir şekilde güvenilir değildir. Ayrıca, kullanılabilirlik grubunun (AG) ağ ve disk hataları gibi iletişim veya kesinti işlevselliğini engelleyebilecek sistem genelindeki olaylara dayanabilmesi gerekir. Birçok hata durumunda ve hizmetler arasında tam olarak güvenilir iletişim olmadığında AG, küme durumunun tüm düğümler için her zaman tutarlı olması için hataları birbirinden bağımsız olarak algılamak ve yanıtlamak için çeşitli yük devretme algılama mekanizmalarına bağlıdır.

SQL Server 2025 iyileştirilmiş sistem durumu denetim zaman aşımı tanılamaları

Yüksek CPU, disk gecikme süresi veya bellek tükenmesi gibi kaynak kısıtlamaları Always On kullanılabilirlik grubu kiralama zaman aşımını tetikleyebilir. Kümeye ait günlükte kiralama zaman aşımı raporlandığında, CPU kullanımı, bellek kullanımı ve disk okuma-yazma gecikme süresi için en güncel performans izleyicisi verileri, kiralama zaman aşımıyla birlikte Windows Failover Küme Günlüğü'nde raporlanır.

Benzer şekilde, kaynak kısıtlamaları sağlık kontrolü zaman aşımını da tetikleyebilir. SQL Server 2025'ten (17.x) itibaren, sağlık kontrolü zaman aşımı algılandığında, kiralama zaman aşımı tanılama çıktısına benzer şekilde, aynı performans izleme sayaçları artık Windows Yük Devretme Kümesi Günlüğü'nde raporlanmaktadır.

Sağlık kontrolü zaman aşımı için geliştirilmiş Windows Yük Devretme Kümesi Günlüğü çıktısının bir örneği aşağıda yer almaktadır.

[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 ERR   [RES] SQL Server Availability Group: [hadrag] Failure detected, diagnostics heartbeat is lost
[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 WARN  [RES] SQL Server Availability Group: [hadrag] AG health check failed, logging perf counter data collected so far
[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 WARN  [RES] SQL Server Availability Group: [hadrag] Date/Time, Processor time(%), Available memory(bytes), Avg disk read(secs), Avg disk write(secs)
[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 WARN  [RES] SQL Server Availability Group: [hadrag] 4/18/2024 23:55:25.0, 21.857418, 3248349184.000000, 0.000000, 0.000253
[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 WARN  [RES] SQL Server Availability Group: [hadrag] 4/18/2024 23:55:35.0, 11.442071, 3255394304.000000, 0.000907, 0.000382
[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 WARN  [RES] SQL Server Availability Group: [hadrag] 4/18/2024 23:55:45.0, 9.979768, 3253981184.000000, 0.000415, 0.000549
[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 WARN  [RES] SQL Server Availability Group: [hadrag] 4/18/2024 23:55:55.0, 9.762850, 3251232768.000000, 0.001989, 0.000638
[Verbose] 000035b8.00001a64::2024/04/18-23:56:35.536 WARN  [RES] SQL Server Availability Group: [hadrag] 4/18/2024 23:56:5.0, 9.827234, 3250462720.000000, 0.002250, 0.001418

Küme düğümü ve kaynak algılama

Kümedeki her düğüm, yük devretme kümesini çalıştıran ve tüm küme kaynaklarını izleyen tek bir küme hizmeti çalıştırır. Kaynak konağı ayrı bir işlem olarak çalışır ve küme hizmeti ile küme kaynakları arasındaki arabirimdir. Kaynak konağı, küme hizmeti tarafından çağrıldığında küme kaynakları üzerinde işlemler gerçekleştirir. SQL Server gibi küme kullanan uygulamalar, kaynak DLL'leri aracılığıyla kaynak izleyicisine özel arabirimler sağlar. Kaynak DLL’i, özel kaynaklar için çevrimiçi ve çevrimdışı işlemleri ve kaynak sağlığını izlemeyi uygular. Kaynak konağı, küme hizmetinin alt sürecidir ve küme hizmeti sonlandırıldığında sonlandırılır.

SQL Server için, AG kaynak DLL'i, AG kiralama mekanizması ve Always On sağlık kontrolüne göre AG'nin sağlık durumunu belirler. AG kaynak DLL'i IsAlive işlemi aracılığıyla kaynak sağlık durumunu kullanıma sunar. Kaynak izleyicisi, IsAlive ve CrossSubnetDelay küme genelindeki değerler tarafından ayarlanan küme sinyal aralığında SameSubnetDelay'yı yoklar. Birincil düğümde, kaynak DLL'e yapılan IsAlive çağrısı AG'nin iyi durumda olmadığını döndürdüğünde, küme hizmeti yük devretmelerini başlatır.

Küme hizmeti, kümedeki diğer düğümlere sinyal gönderir ve onlardan alınan sinyalleri kabul eder. Bir düğüm, bir dizi onaylanmamış kalp atışından bir iletişim kesintisi algıladığında, tüm erişilebilir düğümlerin küme düğümü sağlığını uzlaştırmasına neden olan bir mesaj yayınlar. Yeniden gruplandırma olayı olarak adlandırılan bu olay, düğümler arasında küme durumunun tutarlılığını korur. Yeniden gruplama olayından sonra yeter sayı kaybolursa bu bölümdeki AG'ler de dahil olmak üzere tüm küme kaynakları çevrimdışına alınır. Bu bölümdeki tüm düğümler çözümlenme durumuna geçirilir. Nitel çoğunluğu tutan bir bölüm varsa, AG bölümdeki bir düğüme atanır ve birincil çoğaltma olurken diğer tüm düğümler ikincil çoğaltma olur.

Always On sistem durumu algılama

Always On kaynak DLL'i iç SQL Server bileşenlerinin durumunu izler. sp_server_diagnostics tarafından denetlenen HealthCheckTimeout bir aralıkta SQL Server, bu bileşenlerin sağlık durumunu bildirir. sp_server_diagnostics beş örnek düzeyi bileşenin sistem durumunu bildirir: sistem, kaynak, sorgu işleme, io alt sistemi ve olaylar. Ayrıca her AG'nin sağlık durumunu bildirir. Her bir güncellemede, kaynak DLL AG kaynağının sağlık durumunu AG'nin hata seviyesine göre günceller. Veri sp_server_diagnostics tarafından döndürüldüğünde, her bileşen temiz, uyarı, hata veya bilinmeyen durumda olarak gösterilir. Ayrıca, bazı XML verileri bileşenin durumunu açıklar. Sağlık algılama için, kaynak DLL yalnızca bir bileşen hata durumundaysa harekete geçer.

Sağlık denetimi, kaynak DLL'sine birden fazla aralık için güncelleme bildiremezse, AG'nin sağlıksız olduğu tespit edilir ve IsAlive çağrılarında hatalar bildirir.

Kiralama mekanizması

Diğer yük devretme mekanizmalarından farklı olarak, SQL Server örneği kiralama mekanizmasında etkin bir rol oynar. Kira mekanizması, Küme kaynak konağı ile SQL Server işlemi arasında Looks-Alive doğrulama olarak kullanılır. Mekanizma, iki tarafın (Küme Hizmeti ve SQL Server hizmeti) sık sık iletişim halinde olduğundan emin olmak, birbirlerinin durumunu denetlemek ve sonuçta bölünmüş beyin senaryosunu önlemek için kullanılır. AG'yi ana çoğaltma olarak çevrimiçi hale getirirken, SQL Server örneği AG için ayrılmış bir kiracı işçi iş parçacığı oluşturur. Kira çalışanı, kira yenileme ve kiralama durdurma olayları içeren kaynak ana bilgisayarıyla küçük bir bellek bölgesini paylaşır. Kira çalışanı ve kaynak konağı dairesel bir şekilde çalışır, ilgili kira yenileme işaretlerini verir ve ardından bekleme moduna geçer, diğer tarafın kendi kira yenileme işaretini veya durdurma işaretini vermesini bekler. Hem kaynak sunucusu hem de SQL Server kira iş parçacığı yaşam süresi ömrünü korur. Bu değer, iş parçacığı diğer iş parçacığından sinyal aldıktan sonra her uyandığında güncelleştirilir. Sinyal beklenirken zaman aşım süresine ulaşılırsa, kira süresi dolar ve kopya o belirli AG için çözümleme durumuna geçirilir. Kullanım süresi durdurma olayı sinyalliyse, replika çözümleme rolüne geçer.

Kaynak sistem durumu DLL'si ile SQL Server arasındaki iletişimi gösteren diyagram.

Kiralama mekanizması, SQL Server ile Windows Server Yük Devretme Kümesi arasında senkronizasyonu sağlar. Bir yük devretme komutu verildiğinde, küme hizmeti Offline çağrısını geçerli ana kopyanın kaynak DLL'sine gönderir. Kaynak DLL'i ilk olarak bir saklı yordam kullanarak AG'yi çevrimdışına almaya çalışır. Bu saklı yordam başarısız olursa veya zaman aşımına uğradıysa, hata küme hizmetine geri bildirilir ve ardından bir sonlandırma komutu gönderir. Terminate adımı aynı veritabanı prosedürünü yürütmeyi yeniden dener, ancak bu kez küme, AG'yi yeni bir replika üzerinde aktifleştirmeden önce kaynak DLL dosyasının başarılı mı yoksa başarısız mı olduğunu bildirmesini beklemez. Bu ikinci yordam çağrısı başarısız olursa, kaynak ana bilgisayarının örneği çevrimdışı duruma getirmek için kira mekanizmasına güvenmesi gerekir. Kaynak DLL, AG'yi çevrimdışına almak için çağrıldığında, kaynak DLL kira durdurma olayını tetikler ve SQL Server kira çalışanı iş parçacığını uyandırarak AG'yi çevrimdışına alma işlemini başlatır. Bu durma olayı işaretlenmese bile kiranın süresi dolar ve kopya çözümlenme durumuna geçiş yapar.

Kira, öncelikle birincil etmen ile küme arasında bir eşitleme mekanizmasıdır. Ancak bu mekanizma, normalde yük devretmeye gerek olmayan hataya yol açabilecek durumlar da oluşturabilir. Örneğin, yüksek CPU, yetersiz bellek koşulları (düşük sanal bellek, işlem sayfalaması), bellek dökümü oluştururken SQL işleminin yanıt vermemesi, sistemde yanıt alınamaması, kümenin (WSFC) çevrimdışı olması (çoğunluk kaybı gibi) SQL örneğinden kira yenilemesini engelleyebilir ve yeniden başlatmayı veya yük devretmesini tetikleyebilir.

Küme zaman aşımı değerleri için yönergeler

Dengeleri dikkatle göz önünde bulundurun ve SQL Server kümenizin daha az agresif izlenmesini kullanmanın sonuçlarını anlayın. Küme zaman aşımı değerlerinin artırılması, geçici ağ sorunlarına dayanıklılığı artırır, ancak sert hatalara karşı tepkileri yavaşlatır. Kaynak baskısı veya büyük coğrafi gecikme süresiyle başa çıkmak için zaman aşımlarının artırılması, sabit veya kurtarılamaz hatalardan kurtarma süresini de artırır. Bu, birçok uygulama için kabul edilebilir olsa da, her durumda ideal değildir.

Varsayılan ayarlar, sabit hata belirtilerine hızlı tepki vermek ve kapalı kalma süresini sınırlamak için iyileştirilmiştir, ancak bu ayarlar belirli iş yükleri ve yapılandırmalar için de aşırı agresif olabilir. Bu LeaseTimeout, CrossSubnetDelay, CrossSubnetThreshold, SameSubnetDelay, SameSubnetThreshold veya HealthCheckTimeout değerlerinden herhangi birini varsayılan değerlerinin altına düşürmek önerilmez. Her dağıtım için doğru ayarların bulunması farklılık gösterir ve büyük olasılıkla daha uzun bir ince ayar süresi alır. Bu değerlerden herhangi birinde değişiklik yaparken, bunları aşamalı olarak ve bu değerler arasındaki ilişkileri ve bağımlılıkları göz önünde bulundurarak yapın.

Küme zaman aşımı ile kiralama zaman aşımı arasındaki ilişki

Kira mekanizmasının birincil işlevi, küme hizmeti başka bir düğüme yük devretmeye çalışırken örnekle iletişim kuramıyorsa SQL Server kaynağını çevrimdışına almaktır. Küme AG küme kaynağında çevrimdışı işlemi gerçekleştirdiğinde, küme hizmeti kaynağı çevrimdışı duruma getirmek için rhs.exe için bir RPC çağrısı yapar. Kaynak DLL,SQL Server'a AG'yi çevrimdışına almasını bildirmek için saklı yordamları kullanır, ancak bu saklı yordam başarısız olabilir veya zaman aşımına neden olabilir. Kaynak ana bilgisayarı, çevrimdışı çağrı sırasında kendi kira yenileme iş parçacığını da durdurur. En kötü durumda, SQL Server kira süresinin 1/2 * LeaseTimeout ile dolmasına ve örneğin çözümlenme durumuna geçmesine neden olur. Yük devretme işlemleri birden çok farklı taraf tarafından başlatılabilir, ancak küme durumunun görünümünün küme genelinde ve SQL Server örnekleri arasında tutarlı olması çok önemlidir. Örneğin, birincil örneğin kümenin geri kalanıyla bağlantıyı kaybettiği bir senaryo düşünün. Kümedeki her düğüm, küme zaman aşımı değerleri nedeniyle benzer zamanlarda bir hata belirler, ancak birincil rolden vazgeçmeye zorlamak için birincil SQL Server örneğiyle yalnızca birincil düğüm etkileşimde bulunabilir.

Birincil düğümün perspektifinden küme servisi nitelikli çoğunluğu kaybetti ve servis kendi kendini sonlandırmaya başladı. Küme hizmeti, işlemi sonlandırmak için kaynak konağına bir RPC çağrısı gönderir. Bu sonlandırma çağrısı, SQL Server örneğinde AG'yi çevrimdışına almaktan sorumludur. Bu çevrimdışı çağrı T-SQL aracılığıyla yapılır, ancak SQL ile kaynak DLL arasında bağlantının başarıyla kurulacağını garantileyemez.

Kümenin geri kalanı açısından bakıldığında, şu anda birincil kopya yoktur, bu nedenle küme oy kullanır ve kümedeki diğer düğümler için tek bir yeni birincil oluşturur. Kaynak DLL tarafından çağrılan saklı yordam başarısız olursa veya zaman aşımına uğradıysa küme bölünmüş bir beyin senaryosuna karşı savunmasız olabilir.

Kiralama zaman aşımı, iletişim hataları karşısında bölünmüş beyin senaryolarını önler. Tüm iletişim başarısız olsa bile kaynak DLL süreci sonlandırılır ve kiralama güncellenemez. Kiralama süresi dolduğunda AG'yi otomatik olarak çevrimdışına alır. SQL Server örneğinin, küme yeni bir tane oluşturmadan önce birincil çoğaltmayı artık barındırmadığını bilmesi gerekir. Yeni bir birincil çoğaltma seçmekten sorumlu olan kümenin geri kalanı geçerli birincil çoğaltmayla koordinasyon sağlamanın bir aracı olmadığından, zaman aşımı değerleri geçerli birincil çoğaltma kendisini çevrimdışına almadan önce yeni bir birincil çoğaltmanın kurulmamasını sağlar.

Küme yük devredildiğinde, önceki birincil çoğaltmayı barındırmakta olan SQL Server örneğinin, yeni birincil çoğaltma çevrimiçi olmadan önce çözümleme durumuna geçmesi gerekir. Belirli bir anda SQL Server kira iş parçacığının kalan geçerlilik süresi 1/2 * LeaseTimeout olur, çünkü kira her yenilendiğinde yeni geçerlilik süresi LeaseInterval veya 1/2 * LeaseTimeout olarak güncellenir. Küme hizmeti veya kaynak konağı, kira durdurma olayına işaret etmeden durur veya sonlandırılırsa, SameSubnetThreshold\ SameSubnetDelay milisaniye sonra küme, birincil düğümü devre dışı olarak bildirir. Bu süre içinde, birincilin çevrimdışı olacağı garanti edilebilmesi için kira süresinin dolması gerekir. Kiralama zaman aşımı için maksimum yaşam süresi ½ * LeaseTimeout, ½ * LeaseTimeout değerinden SameSubnetThreshold * SameSubnetDelay küçük olmalıdır.

SameSubnetThreshold \<= CrossSubnetThreshold ve SameSubnetDelay \<= CrossSubnetDelay tüm SQL Server kümeleri için doğru olmalıdır.

Sistem sağlık kontrolü zaman aşımı işlemi

Başka hiçbir yük devretme mekanizması doğrudan bağımlı olmadığından sağlık kontrolü zaman aşımı daha esnektir. Varsayılan 30 saniye değeri, sp_server_diagnostics aralığını 10 saniye olarak ayarlar ve zaman aşımı için en az 15 saniye ile 5 saniyelik bir aralık sağlar. Daha genel olarak güncelleştirme sp_server_diagnostics aralığı her zaman 1/3 * olur HealthCheckTimeout. Kaynak DLL bir aralıkta yeni bir sistem durumu verileri kümesi almadığında, geçerli AG ve örnek durumunu belirlemek için önceki aralıktan sistem durumu verilerini kullanmaya devam eder. Sistem durumu denetimi zaman aşımı değerinin artırılması, birincilin CPU baskısına karşı daha dayanıklı olmasını sağlarken, bu da her aralıkta yeni veri sağlanmasını engelleyebilir. Ancak, daha uzun süre boyunca eski verilere dayalı sistem durumu denetimlerine güvenir. Zaman aşımı değerinden bağımsız olarak, çoğaltmanın iyi durumda olmadığını belirten veriler alındığında, sonraki IsAlive çağrı, örneğin sağlıksız olduğunu döndürecek ve küme hizmeti bir yük devretme işlemi başlatacaktır.

AG'nin hata koşulu düzeyi, sistem durumu denetimi için hata koşullarını değiştirir. Herhangi bir hata düzeyi için AG öğesi iyi durumda değil sp_server_diagnostics olarak bildirilirse sistem durumu denetimi başarısız olur. Her düzey, altındaki düzeylerden tüm hata koşullarını devralır.

Seviye Örneğin ölü olarak kabul edildiği koşul
1: OnServerDown AG dışındaki herhangi bir kaynak başarısız olduğunda sağlık kontrolü hiçbir işlem yapmaz. AG verileri 5 aralık boyunca veya 5/3 * HealthCheckTimeout süresi içinde alınmıyorsa
2: SunucuCevapsız sp_server_diagnostics için HealthCheckTimeout verisi alınmazsa
3: OnCriticalServerError (Varsayılan) Sistem bileşeni hata bildiriyorsa
4: OnModerateServerError Kaynak bileşeni hata bildiriyorsa
Herhangi Bir Nitelikli Arıza Koşulunda Sorgu işleme bileşeni bir hata bildiriyorsa

Küme ve Always On zaman aşımı değerlerini güncelleme

Küme değerleri

WSFC yapılandırmasında küme zaman aşımı değerlerinin belirlenmesinden sorumlu olan dört değer vardır:

  • Aynı Altnet Gecikmesi
  • AynıAltAğEşiği
  • Alt Ağlar Arası Gecikme
  • Alt Ağlar Arası Eşik

Gecikme değerleri, küme hizmetinden gelen kalp atışları arasındaki bekleme süresini belirler ve eşik değerleri, hedef düğümden veya kaynaktan onay alınamayan kalp atışlarının sayısını, nesne küme tarafından ölü olarak ilan edilmeden önce ayarlar. Aynı alt ağdaki düğümler arasında SameSubnetDelay \* SameSubnetThreshold milisaniye boyunca daha fazla süre başarılı bir sinyal yoksa, düğümün öldüğü belirlenir. Alt ağlar arası değerler kullanılarak yapılan iletişimde de aynı durum geçerlidir.

Tüm geçerli küme değerlerini listelemek için, hedef kümedeki herhangi bir düğümde yükseltilmiş bir PowerShell terminali açın. Aşağıdaki komutu çalıştırın:

 Get-Cluster | fl *

Bu değerlerden herhangi birini güncelleştirmek için yükseltilmiş bir PowerShell terminalinde aşağıdaki komutu çalıştırın:

(Get-Cluster).<ValueName> = <NewValue>

Küme zaman aşımını daha dayanıklı hale getirmek için Delay * Threshold ürününü artırırken, eşiği artırmadan önce gecikme değerini artırmak daha etkilidir. Gecikme artırılarak, her bir kalp atışı arasındaki süre uzatılır. Kalp atışları arasında daha fazla zaman bulunması, geçici ağ sorunlarının kendiliğinden çözülmesi ve aynı dönemde daha fazla kalp atışı göndermeye kıyasla ağ tıkanıklığının azalması için daha fazla zaman tanır.

Kira zaman aşımı

Kiralama mekanizması, bir WSFC kümesindeki her AG'ye özgü tek bir değer tarafından denetlenmektedir. Kiralama zaman aşımı aşağıdaki hatalara neden olabilir:

Error 35201:
A connection timeout has occurred while attempting to establish a connection to availability replica 'replicaname'
Error 35206:
A connection timeout has occurred on a previously established connection to availability replica 'replicaname'

Kira zaman aşımı değerini değiştirmek için Yük Devretme Kümesi Yöneticisi'ni kullanın ve şu adımları izleyin:

  1. Roller sekmesinde hedef AG rolünü bulun. Hedef AG rolünü seçin.

  2. Pencerenin alt kısmındaki AG kaynağına sağ tıklayın ve Özellikler'i seçin.

    Yük devretme kümesi yöneticisinin ekran görüntüsü.

  3. Açılan pencerede özellikler sekmesine gidip bu AG'ye özgü değerlerin listesini görüntüleyin. Değiştirmek için LeaseTimeout değerini seçin.

    Kullanılabilirlik grubu özelliklerinin ekran görüntüsü.

    AG yapılandırmasına bağlı olarak dinleyiciler, paylaşılan diskler, dosya paylaşımları vb. için ek kaynaklar olabilir, bu kaynaklar ek yapılandırma gerektirmez.

Uyarı

'LeaseTimeout' özelliğinin yeni değeri, kaynak çevrimdışı duruma getirildikten ve yeniden çevrimiçi duruma getirildikten sonra geçerlilik kazanır.

Sağlık kontrol değerleri

Always On sistem durumu denetimini iki değer denetler: FailureConditionLevel ve HealthCheckTimeout. FailureConditionLevel, tarafından sp_server_diagnostics bildirilen belirli hata koşullarına dayanıklılık düzeyini gösterir ve HealthCheckTimeout kaynak DLL'sinin içinden sp_server_diagnosticsgüncelleştirme almadan geçebileceği süreyi yapılandırmaktadır. için sp_server_diagnostics güncelleştirme aralığı her zaman HealthCheckTimeout / 3'dür.

Yük devretme koşulu düzeyini yapılandırmak için FAILURE_CONDITION_LEVEL = <n> seçeneğini CREATEALTER deyiminde kullanınAVAILABILITY GROUP; burada <n> 1 ile 5 arasında bir tamsayıdır. Aşağıdaki komut AG 'AG1' için hata koşulu düzeyini 1 olarak ayarlar:

ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1);

Sistem durumu denetim zaman aşımını yapılandırmak için HEALTH_CHECK_TIMEOUT seçeneğini, CREATE veya ALTER deyimlerinde kullanınAVAILABILITY GROUP. Aşağıdaki komut, AG AG1 için sistem durumu denetim zaman aşımını 60.000 milisaniye olarak ayarlar:

ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT =60000);

Zaman aşımı yönergelerinin özeti

  • Zaman aşımı değerlerinin varsayılan değerlerinin altına indirilmesi önerilmiyor.

  • Kira aralığı (1/2 * LeaseTimeout) SameSubnetThreshold * SameSubnetDelay değerinden kısa olmalıdır

  • SameSubnetEşiği <= CrossSubnetEşiği

  • SameSubnetDelay <= CrossSubnetDelay

Zaman aşımı ayarı Amaç Zaman aralığı Kullanımlar Canlı mı & Canlı Görünüyor Nedenler Sonuç
Kira zaman aşımı
Varsayılan: 20000
Split brain durumunu önleme Birincilden Kümeye
(HADR)
Windows olay nesneleri Her ikisinde de kullanılır İşletim sistemi yanıt vermiyor, düşük sanal bellek, çalışma seti sayfalama, döküm oluşturma, yüksek CPU kullanımı, WSFC devre dışı (quorum kaybı) AG kaynağı çevrimdışı-çevrimiçi, yük devretme
Oturum zaman aşımı
Varsayılan: 10000
Birincil ve İkincil arasındaki iletişim sorunu hakkında bilgi İkincilden Birinciye
(HADR)
TCP Yuvaları (DBM uç noktası aracılığıyla gönderilen iletiler) İkisinde de kullanılmaz Ağ iletişimi,
İkincil hata - çalışmıyor, işletim sistemi yanıt vermiyor, kaynak çekişmesi.
İkincil - BAĞLANTISI KESİLDİ
HealthCheck zaman aşımı
Varsayılan: 30000
Birincil replikasının sağlığını belirlemeye çalışırken zaman aşımını belirtin Kümeden Birincile
(FCI & HADR)
T-SQL sp_server_diagnostics Her ikisinde de kullanılır Hata koşulları karşılanıyor, işletim sistemi yanıt vermiyor, düşük sanal bellek, çalışma kümesi düzeltme, döküm oluşturma, WSFC (çoğunluk kaybı), zamanlayıcı sorunları (kilitlenmiş zamanlayıcılar) AG kaynağı Çevrimdışı-çevrimiçi veya Yük Devretme, FCI yeniden başlatma/yük devretme