Aracılığıyla paylaş


Always On kullanılabilirlik grubu için kullanılabilirlik modları arasındaki farklar

Şunlar için geçerlidir: SQL Server

Always On kullanılabilirlik gruplarında kullanılabilirlik modu , belirli bir kullanılabilirlik çoğaltmasının zaman uyumlu işleme modunda çalıştırılıp çalıştırılamayacağını belirleyen bir çoğaltma özelliğidir. Her kullanılabilirlik çoğaltması için kullanılabilirlik modu zaman uyumlu işleme modu, zaman uyumsuz işleme veya yalnızca yapılandırma modu için yapılandırılmalıdır.

Birincil çoğaltma zaman uyumsuz işleme modu için yapılandırılmışsa, herhangi bir ikincil çoğaltmanın gelen işlem günlüğü kayıtlarını diske yazmasını beklemez ( günlüğü sağlamlaştırmak için).

Belirli bir ikincil çoğaltma zaman uyumsuz işleme modu için yapılandırılmışsa, birincil çoğaltma söz konusu ikincil çoğaltmanın günlüğü sağlamlaştırmasını beklemez. Hem birincil çoğaltma hem de belirli bir ikincil çoğaltma zaman uyumlu işleme modu için yapılandırılmışsa, birincil çoğaltma, ikincil çoğaltmanın günlüğü sağlamlaştırdığını onaylamasını bekler (ikincil çoğaltma birincil çoğaltmanın oturum zaman aşımı süresi içinde birincil çoğaltmaya ping atamadığı sürece).

Uyarı

Eşzamanlı taahhüt ikincil çoğaltması, birincil çoğaltmanın oturum zaman aşımı süresini (varsayılan olarak 10 saniyedir) aşarsa, birincil çoğaltma bu ikincil çoğaltmadaki her veritabanının eşitleme durumunu ve çoğaltma durumunu geçici olarak NOT SYNCHRONIZING ve NOT_HEALTHY olarak işaretler. İkincil çoğaltma birincil çoğaltmayla yeniden bağlandığında zaman uyumlu işleme modunu sürdürür.

Desteklenen kullanılabilirlik modları

Always On kullanılabilirlik grupları üç kullanılabilirlik modunu destekler:

  • Zaman uyumsuz kaydetme modu
  • Zaman uyumlu işleme modu
  • Yalnızca yapılandırma modu

Zaman uyumsuz işlem modu, erişilebilirlik kopyaları önemli mesafelere dağıtıldığında iyi çalışan bir felaket kurtarma çözümüdür. Her ikincil çoğaltma zaman uyumsuz işleme modunda çalışıyorsa, birincil çoğaltma ikincil çoğaltmaların hiçbirinin günlüğü sağlamlaştırmasını beklemez. Bunun yerine, günlük kaydını yerel günlük dosyasına yazdıktan hemen sonra, birincil replikasyon istemciye işlem onayını gönderir. Birincil replika, asenkron commit modu için yapılandırılmış ikincil replika ile karşılaştırıldığında en düşük işlem gecikmesine sahip şekilde çalışır.

Geçerli birincil, zaman uyumsuz işlem tamamlama kullanılabilirlik modu için yapılandırılmışsa, tek tek kullanılabilirlik modu ayarlarından bağımsız olarak tüm ikincil çoğaltmalar için işlemleri zaman uyumsuz olarak tamamlar.

Daha fazla bilgi için bu makalenin devamındaAsynchronous-Commit Kullanılabilirlik Modu'nu inceleyin.

Eşzamanlı işleme modu, performanstan ödün vererek artan işlem gecikmesi pahasına yüksek kullanılabilirliği ön plana çıkarır. Zaman uyumlu işleme modu altında, ikincil çoğaltma günlüğü diske sağlamlaştırana kadar işlemler istemciye işlem onayını göndermeyi bekler. İkincil veritabanında veri senkronizasyonu başladığında, ikincil replika ilgili birincil veritabanından gelen günlük kayıtlarını almaya ve uygulamaya başlar. Her kayıt sağlamlaştırıldıktan hemen sonra, ikincil veritabanı SYNCHRONIZED durumuna girer. Bundan sonra, günlük kaydı yerel günlük dosyasına yazılmadan önce her yeni işlem ikincil çoğaltma tarafından sağlamlaştırılır. Belirtilen ikincil çoğaltmanın tüm ikincil veritabanları eşitlendiğinde, eş zamanlı işleme modu el ile yük devretmeyi ve isteğe bağlı olarak otomatik yük devretmeyi destekler.

Daha fazla bilgi için bu makalenin devamındaSynchronous-Commit Kullanılabilirlik Modu'nu inceleyin.

Yalnızca yapılandırma modu , Windows Server Yük Devretme Kümesinde olmayan kullanılabilirlik grupları için geçerlidir. Yalnızca yapılandırma modundaki bir çoğaltma kullanıcı verilerini içermez. Yalnızca yapılandırma modunda, çoğaltma master veritabanı kullanılabilirlik grubu yapılandırma meta verilerini depolar. Daha fazla bilgi için bkz. kullanılabilirlik grubu yapılandırmaları için yüksek kullanılabilirlik ve veri koruması.

Aşağıdaki çizimde beş kullanılabilirlik replikası olan bir kullanılabilirlik grubu gösterilmektedir. Birincil kopya ve bir ikincil kopya, otomatik hata yönetimi ile senkron yedekleme modu için yapılandırılır. Başka bir ikincil çoğaltma, yalnızca planlanmış manuel yük devretme ile zaman uyumlu işleme modu için yapılandırılırken, iki ikincil çoğaltma, genellikle "zorlamalı yük devretme" olarak adlandırılan, yalnızca zorlamalı manuel yük devretmeyi destekleyen zaman uyumsuz işleme modu için yapılandırılmıştır.

Replikaların kullanılabilirlik ve yük devretme modlarının diyagramı.

İki kullanılabilirlik replikası arasındaki senkronizasyon ve yük devretme davranışı, her iki replikanın kullanılabilirlik moduna bağlıdır. Örneğin, zaman uyumlu işlemenin gerçekleşmesi için hem birincil çoğaltmanın hem de ikincil çoğaltmanın zaman uyumlu işleme için yapılandırılması gerekir. Aynı şekilde otomatik yük devretme için her iki çoğaltmanın da otomatik yük devretme için yapılandırılması gerekir. Bu nedenle, daha önce gösterilen dağıtım senaryosunun davranışı, olası her birincil çoğaltmanın davranışını inceleyen aşağıdaki tabloda özetlenebilir:

Geçerli birincil replikası Otomatik yük devretme hedefleri Zaman uyumlu bağlama modu davranışı Asenkron-commit mod davranışı Otomatik yük devretme mümkün
01 02 02 ve 03 04 Evet
02 01 01 ve 03 04 Evet
03 01 ve 02 04 Hayı
04 01, 02 ve 03 Hayı

Genellikle, node 04 zaman uyumsuz işleme çoğaltması olarak bir olağanüstü durum kurtarma sitesinde dağıtılır. Node 04'e yük devredildikten sonra Düğüm 01, 02 ve 03 düğümlerinin zaman uyumsuz işleme modunda kalması, iki site arasındaki yüksek ağ gecikme süresi nedeniyle kullanılabilirlik grubunuzda olası performans düşüşünü önlemeye yardımcı olur.

Asenkron-işlem tamamlama kullanılabilirlik modu

Asenkron işleme modunda, ikincil kopya hiçbir zaman birincil kopyayla eşitlenmez. Belirli bir ikincil veritabanı ilgili birincil veritabanını yakalayabilse de, herhangi bir ikincil veritabanı herhangi bir noktada geri kalabilir. Zaman uyumsuz işleme modu, birincil çoğaltmanın ve ikincil çoğaltmanın önemli bir uzaklık ile ayrıldığı ve küçük hataların birincil çoğaltmayı etkilemesini istemediğiniz veya performansın eşitlenmiş veri korumasından daha önemli olduğu durumlarda olağanüstü durum kurtarma senaryosunda yararlı olabilir. Ayrıca, birincil çoğaltma ikincil çoğaltmadan gelen bildirimleri beklemediğinden, ikincil çoğaltmadaki sorunlar birincil çoğaltmayı hiçbir zaman etkilemez.

Asenkron taahhütlü ikincil çoğaltma, birincil çoğaltmadan alınan günlük kayıtlarını takip etmeye çalışır. Ancak zaman uyumsuz taahhüt ikincil veritabanları her zaman eşitlenmemiş kalır ve muhtemelen ilgili birincil veritabanlarının biraz gerisinde kalır. Genellikle zaman uyumsuz işleme ikincil veritabanı ile buna karşılık gelen birincil veritabanı arasındaki boşluk küçüktür. Ancak ikincil çoğaltmayı barındıran sunucu aşırı yüklendiyse veya ağ yavaşsa boşluk önemli ölçüde artabilir.

Zaman uyumsuz bağlanma modu tarafından desteklenen tek yük devretme şekli, olası bir veri kaybıyla zorlamalı yük devretmedir. Yük devretmeyi zorlamak, yalnızca geçerli birincil çoğaltmanın uzun süre kullanılamaz durumda kalacağı ve birincil veritabanlarının hemen kullanılabilirliğinin olası veri kaybı riskinden daha kritik olduğu durumlar için amaçlanan son çaredir. Yük devretme hedefi, rolü SECONDARY veya RESOLVING durumunda olan bir çoğaltma olmalıdır. Yük devretme hedefi birincil role geçişler ve veritabanlarının kopyaları birincil veritabanı olur. Eski birincil veritabanları ve kalan tüm ikincil veritabanları, kullanılabilir duruma geldikten sonra, siz bunları manuel olarak tek tek devreye alana kadar askıya alınır. Asenkron işlem onayı modunda, ilk birincil çoğaltmanın henüz eski ikincil çoğaltmaya göndermediği tüm işlem günlükleri kaybolur. Bu, yeni birincil veritabanlarının bazılarının veya tümünün yakın zamanda kaydedilmiş işlemlerden yoksun olabileceği anlamına gelir. Zorlamalı yük devretmenin nasıl çalıştığı ve bunu kullanmaya yönelik en iyi yöntemler hakkında daha fazla bilgi için bkz. Yük Devretme ve Yük Devretme Modları (Her Zaman Açık Kullanılabilirlik Grupları).

Zaman uyumlu işleme kullanılabilirlik modu

Zaman uyumlu bağlılık kullanılabilirlik modu (zaman uyumlu-işleme modu) altında, bir kullanılabilirlik grubuna katıldığında ikincil veritabanı, ilgili birincil veritabanını yakalar ve SYNCHRONIZED durumuna girer. veri eşitlemesi devam ettikçe ikincil veritabanı kalır SYNCHRONIZED . Bu, belirli bir birincil veritabanında işlenen her işlemin ilgili ikincil veritabanında işlenmesini garanti eder. Belirli bir ikincil çoğaltmadaki her ikincil veritabanı eşitlendiğinde, ikincil çoğaltmanın bir bütün olarak senkronizasyon sağlık durumu HEALTHY şeklindedir.

Bu bölümde:

Veri eşitlemeyi kesintiye uğrayan faktörler

Tüm veritabanları eşitlendikten sonra, ikincil çoğaltma duruma girer HEALTHY . Aşağıdakilerden biri gerçekleşirse eşzamanlı ikincil kopya iyi durumda olmaya devam eder:

  • Ağ veya bilgisayar gecikmesi veya arızası, ikincil çoğaltma ile birincil çoğaltma arasındaki oturumun zaman aşımına uğramasına yol açar.

    Uyarı

    Kullanılabilirlik çoğaltmalarının oturum süresi özelliği hakkında bilgi için bkz . AlwaysOn kullanılabilirlik grubu nedir?

  • İkincil çoğaltmada ikincil veritabanını askıya alırsınız. İkincil çoğaltma eşitlemeyi durdurur ve eşitleme sağlık durumu NOT_HEALTHY olarak işaretlenir. Askıya alınan ikincil veritabanı sürdürülene ve yeniden eşitlenene veya kullanılabilirlik grubundan kaldırılana kadar ikincil çoğaltma yeniden iyi duruma gelmez.

  • Kullanılabilirlik grubuna birincil veritabanı eklersiniz. Daha önce eşitlenmiş ikincil çoğaltmalar eşitleme-sağlık durumuna girer NOT_HEALTHY. Bu durum, en az bir veritabanının NOT SYNCHRONIZING eşitleme durumunda olduğunu gösterir. Karşılık gelen bir ikincil veritabanı çoğaltma üzerinde hazırlanana, kullanılabilirlik grubuna katılana ve yeni birincil veritabanıyla senkronize edilene kadar belirli bir ikincil çoğaltma HEALTHY olarak tekrar çalıştırılamaz.

  • Birincil çoğaltmayı veya ikincil çoğaltmayı zaman uyumsuz işleme kullanılabilirlik moduna değiştirirsiniz. Zaman uyumsuz işleme moduna geçtikten sonra, veri eşitlemesi devam ettikçe ikincil çoğaltma eşitleme durumu durumunda kalır HEALTHY . Ancak, yalnızca birincil çoğaltma asenkron işleme moduna değiştirilirse, senkron işleme ikincil çoğaltması PARTIALLY_HEALTHY eşitleme sağlık durumuna girer. Bu durum, en az bir veritabanının SYNCHRONIZING eşitleme durumunda olduğunu, ancak veritabanlarının hiçbirinin NOT SYNCHRONIZING durumunda olmadığını gösterir.

  • Herhangi bir ikincil çoğaltmayı eşzamanlı taahhüt kullanılabilirlik modu olarak değiştirirsiniz. Bu, tüm veritabanları PARTIALLY_HEALTHY eşitleme durumunda olana kadar ikincil çoğaltmanın SYNCHRONIZED eşitleme-sağlık durumu olarak işaretlenmesine neden olur.

İpucu

Kullanılabilirlik grubu, kullanılabilirlik çoğaltması ya da kullanılabilirlik veritabanının eşitleme sağlığını görüntülemek için, sırasıyla synchronization_health, synchronization_health_desc veya sys.dm_hadr_database_replica_states tablolarının ya da sütununu sorgulayın.

İkincil çoğaltmada eşitleme nasıl çalışır?

Eşzamanlı işleme modunda, ikincil bir çoğaltma kullanılabilirlik grubuna katıldıktan ve birincil çoğaltma ile bir oturum oluşturduktan sonra:

  1. İkincil kopya, gelen günlük kayıtlarını diske yazar (günlüğü sağlamlaştırır).
  2. İkincil çoğaltma, birincil çoğaltmaya bir onay iletisi gönderir.

İkincil veritabanındaki sağlamlaştırılmış günlük, birincil veritabanındaki günlüğün sonuna ulaştığında, ikincil veritabanının durumu olarak SYNCHRONIZED ayarlanır.

Eşitleme için gereken süre, ikincil veritabanının oturum başlangıcında birincil veritabanının ne kadar gerisinde olduğuna bağlıdır. Bu delta, birincil çoğaltmadan başlangıçta alınan günlük kayıtlarının sayısı, birincil veritabanındaki iş yükü ve ikincil çoğaltmanın örnek konağı hızıyla ölçülür.

İşlem süreci

Zaman uyumlu işleme modunda, işlemler her iki çoğaltmaya da şu sırayla işlenir:

  1. Birincil yedek bir istemciden bir işlem alır.

  2. Birincil çoğaltma, kaydı işlem günlüğüne yazar ve günlük kaydını ikincil çoğaltmalara eşzamanlı olarak gönderir.

    Bir günlük kaydı birincil veritabanının işlem günlüğüne yazıldıktan sonra, yalnızca henüz işlem günlüğünü almamış olan ikincil bir veritabanına yük devredildiğinde işlem geri alınabilir.

  3. Birincil çoğaltma, zaman uyumlu işleme ikincil çoğaltmasından onay bekler.

  4. İkincil kopya, logu sağlamlaştırarak birincil kopyaya bir onay iletir.

  5. Birincil kopya işlemi tamamlar ve istemciye bir onay mesajı gönderir.

Eşzamanlı taahhüt zaman aşımı

Eşzamanlı taahhüt ikincil replikası, günlüğü kalıcı hale getirdiğini onaylamadan zaman aşımına uğrarsa, kullanılabilirlik grubunda şu adımlar atılır:

  1. Birincil replikasyon, ikincil replikasyonu başarısız olarak işaretler.
  2. İkincil çoğaltma durumu DISCONNECTED olarak değişir.
  3. Birincil onay beklemeyi durdurur.
  4. Kullanılabilirlik grubu eşitleme durumu olarak NOT SYNCHRONIZING ve çoğaltma durumu olarak NOT_HEALTHY işaretler.

Bu davranış, başarısız bir zaman uyumlu işleme ikincil çoğaltmasının birincil çoğaltmada günlük sağlamlaştırmayı engellememesini sağlar.

İkincil kopya yeniden çevrimiçi olduğunda:

  1. İkincil çoğaltma durumu CONNECTED olarak değişir.
  2. İkincil kopya, birincil kopyanın günlük gönderim kuyruğunu işler.
  3. Eşitleme durumu SYNCHRONIZING'e, çoğaltma sağlığı ise PARTIALLY_HEALTHY'e geçiyor.

Günlük gönderme kuyruğu işlendikten sonra eşitleme durumu SYNCHRONIZED olur ve çoğaltma sağlığı HEALTHY olur.

Eşzamanlı taahhüt modu, işlemin gecikmesi süresini bir ölçüde artırma karşılığında verilerin iki yer arasında senkronize edilmesini zorunlu kılarak verilerinizi korur.

Yalnızca el ile yük devretme ile zaman uyumlu işleme modu

Bu kopyalar bağlandığında ve veritabanı eşitlendiğinde elle geçiş desteklenir. İkincil replika çalışmayı durdurursa birincil replika etkilenmez. Birincil çoğaltıcı, SYNCHRONIZED kopyaları yoksa (yani, herhangi bir ikincil kopyaya veri göndermeden) açık şekilde çalışır. Birincil çoğaltma kaybolursa, ikincil çoğaltmalar RESOLVING durumuna girer, ancak veritabanı sahibi ikincil çoğaltmaya yük devretmeye zorlayabilir (olası veri kaybıyla). Daha fazla bilgi için bkz. Yük Devretme ve Yük Devretme Modları (Always On Kullanılabilirlik Grupları)

Otomatik yük devretme ile eşzamanlı taahhüt modu

Otomatik failover, birincil replikayı kaybettikten sonra veritabanının hızla tekrar erişilebilir hale getirilmesini sağlayarak yüksek erişilebilirlik sunar. Bir erişilebilirlik grubunu otomatik yük devretme için yapılandırmak amacıyla, hem mevcut birincil replikayı hem de en az bir ikincil replikayı otomatik yük devretmeyi destekleyen eşzamanlı taahhüt moduna ayarlamanız gerekir. SQL Server 2019 (15.x), SQL Server 2017'de (14.x) 3 olan zaman uyumlu çoğaltma sayısının üst sınırını 5'e yükseltti. Beş çoğaltmadan oluşan bu grubu, grupta otomatik yük devretme olacak şekilde yapılandırabilirsiniz. Bir birincil replika ve dört eşzamanlı ikincil replika vardır.

Ayrıca, belirli bir zamanda otomatik yük devretmenin mümkün olması için, bu ikincil çoğaltma birincil çoğaltmayla eşitlenmelidir (yani, ikincil veritabanlarının tümü eşitlenir) ve Windows Server Yük Devretme Kümelemesi (WSFC) kümesinde yeterli çoğunluk bulunmalıdır. Birincil çoğaltma sunucusu bu koşullar altında kullanılamaz duruma gelirse, otomatik yük devretme işlemi gerçekleşir. İkincil çoğaltma birincil rolüne geçer ve veritabanını birincil veritabanı olarak sunar. Daha fazla bilgi için "Otomatik Yük Devretme" bölümüne, Yük Devretme ve Yük Devretme Modları (Always On Kullanılabilirlik Grupları) makalesinde bakın.

Uyarı

WSFC çoğunluk ve her zaman açık kullanılabilirlik grupları hakkında bilgi için bkz. WSFC Çoğunluk Modları ve Oylama Yapılandırması (SQL Server).

İkincil çoğaltmada veri gecikme süresi

Salt okunur iş yükleriniz bazı veri gecikme sürelerini tolere edebilirse ikincil çoğaltmalara salt okunur erişim uygulamak yararlı olur. Veri gecikme süresinin kabul edilemez olduğu durumlarda, salt okunur iş yüklerini birincil çoğaltmada çalıştırmayı göz önünde bulundurun.

Birincil çoğaltma, birincil veritabanındaki değişikliklerin günlük kayıtlarını ikincil çoğaltmalara gönderir. Her ikincil veritabanında, ayrılmış bir yineleme iş parçacığı günlük kayıtlarını uygular. Okuma erişimli ikincil veritabanında, değişikliği içeren günlük kaydı ikincil veritabanına uygulanana ve işlem birincil veritabanına işlenene kadar, belirli bir veri değişikliği sorgu sonuçlarında görünmez.

Bu, birincil ve ikincil çoğaltmalar arasında genellikle yalnızca birkaç saniyelik bir gecikme süresi olduğu anlamına gelir. Ancak olağan dışı durumlarda, örneğin ağ sorunları aktarım hızını azaltırsa gecikme süresi önemli hale gelebilir. G/Ç performans sorunları oluştuğunda ve veri taşıma askıya alındığında gecikme süresi artar. Askıya alınmış veri hareketini izlemek için Always On Kullanılabilirlik Grubu göstergesini (SQL Server Management Studio) veya sys.dm_hadr_database_replica_states dinamik yönetim görünümünü kullanabilirsiniz.

SQL Server 2025 (17.x) ve sonraki sürümlerde gecikme süresini azaltmak için, birincil çoğaltmanın ikincil çoğaltmaya işlem uygulamak için aldığı süreyi (milisaniye cinsinden) azaltabilirsiniz. Daha fazla bilgi için bkz . Sunucu yapılandırması: kullanılabilirlik grubu işleme süresi (ms).

Kullanılabilirlik modunu ve yük devretme modunu değiştirmek için

Oy çoğunluğunu ayarlamak için

El ile yük devretme gerçekleştirmek için

Kullanılabilirlik grubunu, kullanılabilirlik çoğaltmasını ve veritabanı durumlarını görüntülemek için