Yük Devretme Kümesi Örnekleri için Yük Devretme İlkesi

Şunlar için geçerlidir: SQL Server

BIR SQL Server yük devretme kümesi örneğinde (FCI), belirli bir anda Yalnızca bir düğüm Windows Server Yük Devretme Kümesi (WSFC) kümesi kaynak grubuna sahip olabilir. İstemci istekleri FCI'daki bu düğüm aracılığıyla sunulur. Bir hata ve başarısız bir yeniden başlatma durumunda, grup sahipliği FCI'deki başka bir WSFC düğümüne taşınır. Bu işleme yük devretme adı verilir. SQL Server, hata algılama güvenilirliğini artırır ve esnek bir yük devretme ilkesi sağlar.

SQL Server FCI, yük devretme tespiti için temel alınan WSFC hizmetine bağlıdır. Bu nedenle, FCI için yük devretme davranışını iki mekanizma belirler: birincisi yerel WSFC işlevselliğidir ve ikincisi SQL Server kurulumu tarafından eklenen işlevlerdir.

  • WSFC kümesi, otomatik yük devretmede benzersiz bir yük devretme hedefi sağlayan quorum yapılandırmasını korur. WSFC hizmeti, kümenin her zaman optimal quorum durumda olup olmadığını belirler ve buna göre kaynak grubunu çevrimiçi veya çevrimdışı duruma getirir.

  • Etkin SQL Server örneği, ayrılmış bir bağlantı üzerinden WSFC kaynak grubuna düzenli aralıklarla bir bileşen tanılaması kümesi bildirir. WSFC kaynak grubu, yeniden başlatmaları ve yük devretmeleri tetikleyen hata koşullarını tanımlayan yük devretme ilkesini korur.

Bu konu, yukarıdaki ikinci mekanizmayı ele alır. Çekirdek yapılandırması ve sistem durumu algılama için WSFC davranışı hakkında daha fazla bilgi için bkz. WSFC Çekirdek Modları ve Oylama Yapılandırması (SQL Server).

Önemli

Her Zaman Açık kullanılabilirlik grubunda FCI'ye ve FCI'dan otomatik yük devretmelere izin verilmez. Ancak, Always On kullanılabilirlik grubunda ve FCI'den el ile yük devretme işlemlerine izin verilir.

Yük Devretme İlkesine Genel Bakış

Yük devretme işlemi aşağıdaki adımlara ayrılabilir:

  1. Sağlık Durumunu İzleme

  2. Hataları Belirleme

  3. Hatalara Yanıt Verme

Sağlık Durumunu İzleme

FCI için izlenen üç tür sağlık durumu vardır.

SQL Server hizmetinin durumu

WSFC hizmeti, SQL Server hizmetinin ne zaman durdurulduğunu algılamak için etkin FCI düğümünde SQL Server hizmetinin başlangıç durumunu izler.

SQL Server örneğinin yanıt verme hızı

SQL Server başlatılırken, WSFC hizmeti SQL Server Veritabanı Motoru kaynak DLL'sini kullanarak, yalnızca sağlık durumunu izlemek için kullanılan ayrı bir iş parçacığı üzerinde yeni bir bağlantı oluşturur. Bu, SQL örneğinin yük altındayken sistem durumunu raporlamak için gerekli kaynaklara sahip olmasını sağlar. BU ayrılmış bağlantıyı kullanarak SQL Server, SQL Server bileşenlerinin sistem durumunu kaynak DLL'ye düzenli aralıklarla raporlamak için yineleme modunda sp_server_diagnostics (Transact-SQL) sistem saklı yordamını çalıştırır.

Kaynak DLL,sistem durumu denetim zaman aşımını kullanarak SQL örneğinin yanıt hızını belirler. HealthCheckTimeout özelliği, KAYNAK DLL'sinin SQL örneğini WSFC hizmetine yanıt vermiyor olarak raporlamadan önce sp_server_diagnostics saklı yordamı ne kadar beklemesi gerektiğini tanımlar. Bu özellik, T-SQL ve Yük Devretme Kümesi Yöneticisi ek bileşeni kullanılarak yapılandırılabilir. Daha fazla bilgi için bkz . HealthCheckTimeout Özellik Ayarlarını Yapılandırma. Aşağıdaki öğeler, bu özelliğin zaman aşımı ve yineleme aralığı ayarlarını nasıl etkilediğini açıklar:

  • Kaynak DLL sp_server_diagnostics saklı yordamı çağırır ve yineleme aralığını HealthCheckTimeout ayarının üçte birine ayarlar.

  • sp_server_diagnostics saklı yordamı yavaş çalışıyor veya hiçbir bilgi döndürmüyorsa, kaynak DLL, SQL örneğinin yanıt vermediğini WSFC hizmetine rapor etmeden önce HealthCheckTimeout tarafından belirtilen süreyi bekler.

  • Ayrılmış bağlantı kaybolursa kaynak DLL, SQL örneğinin yanıt vermediğini WSFC hizmetine bildirmeden önce HealthCheckTimeout tarafından belirtilen aralık için SQL örneğine bağlantıyı yeniden dener.

SQL Server bileşeni tanılaması

Sistem saklı yordamı sp_server_diagnostics SQL örneğinde bileşen tanılamalarını düzenli aralıklarla toplar. Toplanan tanılama bilgileri, aşağıdaki bileşenlerin her biri için bir satır olarak ortaya çıkar ve çağıran iş parçacığına geçirilir.

  1. sistem

  2. kaynak

  3. sorgu işlemi

  4. I/O alt sistemi

  5. Olaylar

Sistem, kaynak ve sorgu işlemi bileşenleri hata algılama için kullanılır. io_subsytem ve olay bileşenleri yalnızca tanılama amacıyla kullanılır.

Her bilgi satır kümesi, SQL Server kümesi tanılama günlüğüne de yazılır. Daha fazla bilgi için bkz. Yük Devretme Kümesi Örneği Tanı Günlüğünü Görüntüleme ve Okuma.

İpucu

sp_server_diagnostic saklı yordamı SQL Server Always On teknolojisi tarafından kullanılırken, sorunları algılamaya ve gidermeye yardımcı olmak için herhangi bir SQL Server örneğinde kullanılabilir.

Hataları Belirleme

SQL Server Veritabanı Altyapısı kaynak DLL'i, algılanan sistem durumunun FailureConditionLevel özelliğini kullanarak hata için bir koşul olup olmadığını belirler. FailureConditionLevel özelliği, hangi algılanan sistem durumu durumlarının yeniden başlatmalara veya yük devretmelere neden olduğunu tanımlar. Otomatik yeniden başlatma veya yük devretme olmaksızın başlayarak, her türlü olası hata koşulunun otomatik yeniden başlatma veya yük devretmeye yol açabileceği birçok seçenek düzeyi mevcuttur. Bu özelliği yapılandırma hakkında daha fazla bilgi için bkz . FailureConditionLevel Özellik Ayarlarını Yapılandırma.

Hata koşulları artan ölçekte ayarlanır. Düzey 1-5 için her düzey, kendi koşullarına ek olarak önceki düzeylerden tüm koşulları içerir. Bu, her seviyede yük devretme veya yeniden başlatma olasılığının arttığı anlamına gelir. Hata koşulu düzeyleri aşağıdaki tabloda açıklanmıştır.

Bu sistem saklı yordamı hata durumu düzeylerinde önemli bir rol oynadığından sp_server_diagnostics (Transact-SQL) gözden geçirin.

Seviye Koşul Açıklama
0 Otomatik yük devretme veya yeniden başlatma yok Herhangi bir hata durumunda yük devretme veya yeniden başlatmanın otomatik olarak devreye girmeyeceğini belirtir. Bu düzey yalnızca sistem bakım amaçlarına yöneliktir.
1 Sunucu kapalıyken yük devretme veya yeniden başlatma Aşağıdaki koşul oluşursa sunucunun yeniden başlatılmasının veya yük devretmenin tetikleneceğini gösterir:

SQL Server hizmeti çalışmıyor.
2 Sunucu yanıt vermediğinde, yük devretme veya yeniden başlatma işlemleri gerçekleştirilsin Aşağıdaki koşullardan herhangi biri tetiklenirse sunucunun yeniden başlatılmasının veya yük devretmenin tetikleneceğini gösterir:

SQL Server hizmeti çalışmıyor.

SQL Server örneği yanıt vermemekte (Kaynak DLL, HealthCheckTimeout ayarlarındaki sp_server_diagnostics'ten veri almakta zorlanıyor).
3* Kritik sunucu hataları durumunda yük devretme veya yeniden başlatma Aşağıdaki koşullardan herhangi biri tetiklenirse sunucunun yeniden başlatılmasının veya yük devretmenin tetikleneceğini gösterir:

SQL Server hizmeti çalışmıyor.

SQL Server örneği yanıt vermemekte (Kaynak DLL, HealthCheckTimeout ayarlarındaki sp_server_diagnostics'ten veri almakta zorlanıyor).

Sistem saklı yordamı sp_server_diagnostics 'sistem hatası' döndürür.
4 Orta düzey sunucu hatalarında yük devretme veya yeniden başlatma Aşağıdaki koşullardan herhangi biri tetiklenirse sunucunun yeniden başlatılmasının veya yük devretmenin tetikleneceğini gösterir:

SQL Server hizmeti çalışmıyor.

SQL Server örneği yanıt vermemekte (Kaynak DLL, HealthCheckTimeout ayarlarındaki sp_server_diagnostics'ten veri almakta zorlanıyor).

Sistem saklı yordamı sp_server_diagnostics 'sistem hatası' döndürür.

Sistem saklı yordamı sp_server_diagnostics 'kaynak hatası' döndürür.
5 Uygun hata koşullarında yük devretme veya sistemi yeniden başlatma Aşağıdaki koşullardan herhangi biri tetiklenirse sunucunun yeniden başlatılmasının veya yük devretmenin tetikleneceğini gösterir:

SQL Server hizmeti çalışmıyor.

SQL Server örneği yanıt vermemekte (Kaynak DLL, HealthCheckTimeout ayarlarındaki sp_server_diagnostics'ten veri almakta zorlanıyor).

Sistem saklı yordamı sp_server_diagnostics 'sistem hatası' döndürür.

Sistem saklı yordamı sp_server_diagnostics 'kaynak hatası' döndürür.

Sistem saklı yordamı sp_server_diagnostics 'sorgu_işleme hatası' döndürür.

*Varsayılan Değer

Hatalara Yanıt Verme

Bir veya daha fazla hata koşulu algılandıktan sonra, WSFC hizmetinin hatalara nasıl yanıt verdiği, WSFC çekirdek durumuna ve FCI kaynak grubunun yeniden başlatma ve yük devretme ayarlarına bağlıdır. FCI, WSFC kvorumunu kaybettiyse FCI'nin tamamı çevrimdışı yapılır ve FCI yüksek erişilebilirliğini kaybeder. FCI hala WSFC quorumunu koruyorsa, WSFC hizmeti önce başarısız olan düğümü yeniden başlatmayı denemek ve eğer yeniden başlatma girişimleri başarısız olursa yük devretmeyi denemek suretiyle yanıt verebilir. Yeniden başlatma ve yük devretme ayarları Yük Devretme Kümesi Yöneticisi ek bileşeninde yapılandırılır. Bu ayarlar hakkında daha fazla bilgi için bkz <. Kaynak> Özellikleri: İlkeler Sekmesi.

Çekirdek durumunu koruma hakkında daha fazla bilgi için bkz. WSFC Çekirdek Modları ve Oylama Yapılandırması (SQL Server).