Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulama alanı:SQL Server üzerinde Linux
Bu makalede, Linux tabanlı SQL Server yüklemeleri altında kullanılabilirlik gruplarının (AG) özellikleri açıklanmaktadır. Ayrıca Linux ve Windows Server yük devretme kümesi (WSFC) tabanlı AG'ler arasındaki farkları da kapsar. Daha fazla bilgi için Always On kullanılabilirlik grubu nedir? başlığına bakın; çünkü yalnızca WSFC dışında, Windows ve Linux üzerinde aynı şekilde çalışırlar.
Uyarı
read-scale kullanılabilirlik grupları veya Linux üzerindeki kullanılabilirlik grupları gibi Windows Server Yük Devretme Kümelemesi (WSFC) kullanmayan kullanılabilirlik gruplarında, kümeyle ilgili kullanılabilirlik grupları DMV'lerinin sütunları, iç varsayılan küme hakkındaki verileri görüntüleyebilir. Bu sütunlar yalnızca iç kullanım içindir ve göz ardı edilebilir.
Üst düzey bir açıdan bakıldığında, SQL Server on Linux altındaki kullanılabilirlik grupları WSFC tabanlı uygulamalarda olduğu gibi aynıdır. Bu, bazı istisnalar dışında tüm sınırlamaların ve özelliklerin aynı olduğu anlamına gelir. Başlıca farklar şunlardır:
- Microsoft Distributed Transaction Coordinator (DTC), SQL Server 2017 CU 16 ile başlayarak Linux altında desteklenir. Ancak DTC, Linux'ta Kullanılabilirlik Grupları'nda henüz desteklenmiyor. Uygulamalarınız dağıtılmış işlemlerin kullanılmasını gerektiriyorsa ve bir AG gerekiyorsa, SQL Server'ı Windows üzerinde dağıtın.
- Yüksek kullanılabilirlik gerektiren Linux tabanlı dağıtımlarda WSFC yerine kümeleme için Pacemaker kullanılır.
- Çalışma Grubu Kümesi senaryosu dışında Windows'deki AG'lerin çoğundan farklı olarak Pacemaker hiçbir zaman Active Directory Domain Services (AD DS) gerektirmez.
- Ag'nin bir düğümden diğerine nasıl başarısız olduğu Linux ile Windows arasında farklıdır.
-
required_synchronized_secondaries_to_commitgibi bazı ayarlar yalnızca Linux üzerinde Pacemaker aracılığıyla değiştirilebilirken WSFC tabanlı bir yükleme Transact-SQL kullanır.
Çoğaltmaların ve küme düğümlerinin sayısı
SQL Server Standard sürümündeki bir AG'nin toplam çoğaltması iki olabilir: biri birincil, diğeri de yalnızca kullanılabilirlik amacıyla kullanılabilen ikincil çoğaltma. Okunabilir sorgular gibi başka hiçbir şey için kullanılamaz. SQL Server Enterprise sürümündeki bir AG'nin toplam kopya sayısı dokuza kadar olabilir: biri birincil ve en fazla sekiz ikincil olmak üzere, üçe kadar kopya (birincil dahil) eşzamanlı olabilir. Temel alınan bir küme kullanılıyorsa, Corosync söz konusu olduğunda toplam en fazla 16 düğüm olabilir. Kullanılabilirlik grubu, SQL Server Enterprise sürümüne sahip 16 düğümün en fazla dokuzunu ve SQL Server Standard sürümüne sahip iki düğümü kapsayabilir.
Başka bir kopyaya otomatik yük devretme yeteneği gerektiren iki kopyalı bir yapılandırma, Yalnızca yapılandırma çoğaltması ve oy çoğunluğu bölümünde açıklandığı gibi, yalnızca yapılandırma amaçlı bir çoğaltmanın kullanılmasını gerektirir. Yalnızca yapılandırma amaçlı çoğaltmalar SQL Server 2017 (14.x) Toplu Güncelleştirme 1'de (CU 1) sunulmuştur, bu nedenle bu yapılandırma için dağıtılan en düşük sürüm olmalıdır.
Pacemaker kullanılıyorsa çalışır durumda kalması için düzgün şekilde yapılandırılması gerekir. Bu, SQL Server gereksinimleriyle birlikte, yalnızca yapılandırma amaçlı çoğaltma gibi, başarısız bir düğüme çoğunluk ve çitleme işlemlerinin Pacemaker perspektifinden düzgün bir şekilde uygulanması gerektiği anlamına gelir.
Okunabilir ikincil çoğaltmalar yalnızca SQL Server Enterprise sürümünde desteklenir.
Küme türü ve yük devretme modu
SQL Server 2017 (14.x) sürümündeki yeniliklerden biri, AG'ler için küme türünün kullanıma sunulmasıdır. Linux için iki geçerli değer vardır: External ve None. Dış küme türü, Pacemaker'ın AG'nin altında kullanıldığı anlamına gelir. Küme türü için Dış kullanıldığında, yük devretme modunun da Dış olarak ayarlanması gerekir (ayrıca SQL Server 2017'de (14.x) yenidir). Otomatik yük devretme desteklenir, ancak WSFC'nin aksine, Pacemaker kullanıldığında yük devretme modu otomatik değil, harici olarak ayarlanır. WSFC'nin aksine, AG yapılandırıldıktan sonra Pacemaker kısmı oluşturulur.
Küme türü Yok olduğunda, AG'nin Pacemaker gereksinimi yoktur ve kullanmaz. Pacemaker'ın yapılandırıldığı sunucularda bile, bir AG, Küme türü olarak Yok şeklinde yapılandırılmışsa Pacemaker bu AG'yi algılamaz veya yönetmez. 'Yok' küme türü, sadece birincil çoğaltmadan ikincil çoğaltmaya el ile yük devretmeyi destekler. "None parametresi ile oluşturulan bir AG, öncelikli olarak yükseltmeler ve okuma performansını artırma için hedeflenir. Otomatik yük devretmenin gerekmediği olağanüstü durum kurtarma veya yerel kullanılabilirlik gibi senaryolarda çalışabilir ancak önerilmez." Pacemaker olmadan dinleyici hikayesi daha da karmaşıktır.
Küme türü, SQL Server dinamik yönetim görünümünde (DMV) sys.availability_groups, cluster_type ve cluster_type_desc sütunlarında depolanır.
taahhüt için gereken senkronize edilmiş ikincil birimler
SQL Server 2017'de (14.x) yeni olan, AG'ler tarafından kullanılan required_synchronized_secondaries_to_commit adlı bir ayardır. Bu, AG'ye birincil ile senkronize kalması gereken ikincil replikaların sayısını bildirir. Bu, (yalnızca Dış türde bir kümeyle Pacemaker ile entegre edildiğinde) otomatik yük devretme gibi işlevleri etkinleştirir ve doğru sayıda ikincil replikanın çevrimiçi veya çevrimdışında olması durumunda birincilin kullanılabilirliğini kontrol eder. Bunun nasıl çalıştığı hakkında daha fazla bilgi edinmek için bkz. Kullanılabilirlik grubu yapılandırmaları için yüksek kullanılabilirlik ve veri koruması.
required_synchronized_secondaries_to_commit değeri varsayılan olarak ayarlanır ve Pacemaker/ SQL Server tarafından korunur. Bu değeri el ile geçersiz kılabilirsiniz.
required_synchronized_secondaries_to_commit ile yeni sıra numarası (sys.availability_groups içinde depolanır) birleşimi, örneğin otomatik yük devretmenin gerçekleşebileceğini Pacemaker'a ve SQL Server'a bildirir. Bu durumda, ikincil çoğaltma birincil ile aynı sıra numarasına sahip olur ve bu da en son yapılandırma bilgileriyle güncel olduğu anlamına gelir.
Için ayarlanabilen required_synchronized_secondaries_to_commitüç değer vardır: 0, 1 veya 2. Bir replik kullanılamadığında ne olacağı üzerindeki davranışı kontrol ederler. Sayılar, birincil kopya ile eşitlenmesi gereken ikincil kopya sayısına karşılık gelir. Davranış Linux altında aşağıdaki gibidir:
| Ayarlar | Açıklama |
|---|---|
0 |
İkincil replikaların birincil ile senkronize durumda olması gerekmez. Ancak yedek sunucular eşitlenmemişse otomatik yük devretme gerçekleşmez. |
1 |
Bir ikincil kopya, birincil ile eşitlenmiş durumda olmalıdır; otomatik yük devretme mümkündür. İkincil bir zaman uyumlu çoğaltma kullanılabilir olana kadar birincil veritabanı kullanılamaz. |
2 |
Üç veya daha fazla düğüm AG yapılandırmasındaki ikincil çoğaltmaların tamamı birincil ile eşitlenmelidir; bu durumda otomatik yük devretme mümkündür. |
required_synchronized_secondaries_to_commit hem eşzamanlı çoğaltmalarla yük devretme davranışını, hem de veri kaybını denetler. Veri yedekliliğini sağlamak için, değeri 1 veya 2 olan bir ikincil kopya her zaman eşitlenmelidir. Bu, veri kaybı olmadığı anlamına gelir.
değerini required_synchronized_secondaries_to_commitdeğiştirmek için aşağıdaki söz dizimini kullanın:
Uyarı
Değerin değiştirilmesi kaynağın yeniden başlatılmasına neden olur ve bu da kısa bir kesinti anlamına gelir. Bunu önlemenin tek yolu, kaynağı küme tarafından geçici olarak yönetilmeyecek şekilde ayarlamaktır.
Red Hat Enterprise Linux (RHEL) ve Ubuntu
sudo pcs resource update <AGResourceName> required_synchronized_secondaries_to_commit=<value>
SUSE Linux Enterprise Server (SLES)
sudo crm resource param ms-<AGResourceName> set required_synchronized_secondaries_to_commit <value>
Uyarı
SQL Server 2025(17.x) tarihinden itibaren SUSE Linux Enterprise Server (SLES) desteklenmez.
Bu örnekte AG <AGResourceName> için yapılandırılan kaynağın adı ve <value> 0, 1 veya 2'dir. Parametreyi yöneten Pacemaker'ın varsayılan değerine geri ayarlamak için aynı deyimi hiçbir değer olmadan yürütebilirsiniz.
Aşağıdaki koşullar karşılandığında AG'nin otomatik yük devretmesi mümkündür.
- Birincil ve ikincil replika, eşzamanlı veri taşıma olarak ayarlanır.
- İkincil eşitlenmiş (eşitlenmiyor) durumuna sahiptir, yani ikisi aynı veri noktasındadır.
- Küme türü Dış olarak ayarlanır. "'Yok' küme türü ile otomatik yük devretme mümkün değildir."
-
sequence_numberBirincil hale gelecek olan ikincil çoğaltmanın en yüksek sıra numarası vardır; yani, ikincil çoğaltmanınki, özgün birincil çoğaltmanınkiylesequence_numbereşleşir.
Bu koşullar karşılanırsa ve birincil replikayı barındıran sunucu başarısız olursa, Erişilebilirlik Grubu (AG) sahipliği eşzamanlı bir replikaya değişir. Eşzamanlı çoğaltmaların davranışı (toplam üç tane olabilir: bir birincil ve iki ikincil çoğaltma) required_synchronized_secondaries_to_commit ile daha fazla denetlenebilir. Bu, hem Windows hem de Linux'ta AG'lerle çalışır, ancak farklı yapılandırılır. Linux'ta değer, AG kaynağının kendisinde küme tarafından otomatik olarak yapılandırılır.
Yalnızca yapılandırma amaçlı kopya ve çoğunluk
Özellikle başarısız bir düğümü izole ederken Pacemaker ile quorum yönetimindeki sınırlamaları ele almak için yalnızca yapılandırma için tasarlanmış bir replika kullanıma sunulmuştur. Yalnızca iki düğümlü yapılandırmaya sahip olmak AG için çalışmaz. Bir FCI için Pacemaker tarafından sağlanan quorum mekanizmaları uygun olabilir çünkü tüm FCI yük devretme tahkimi küme katmanında gerçekleşir. Bir AG için, Linux üzerinde arbitraj, tüm meta verilerin depolandığı SQL Server'da gerçekleştirilir. Yalnızca yapılandırma replikası burada devreye girer.
Başka bir şeye gerek kalmadan, üçüncü bir düğüm ve en az bir eşzamanlı çoğaltma gerekir. Yalnızca yapılandırma amaçlı çoğaltma, AG yapılandırmasındaki master diğer çoğaltmalarla aynı şekilde AG yapılandırmasını veritabanında depolar. Yalnızca yapılandırma amaçlı çoğaltmada AG'ye katılan kullanıcı veritabanları yoktur. Yapılandırma verileri birincilden eşzamanlı olarak gönderilir. Bu yapılandırma verileri, ister otomatik ister el ile olsun yük devretme işlemleri sırasında kullanılır.
AG'nin quorum'u koruması ve küme türü Harici olan otomatik yük devretmelerini etkinleştirmesi için aşağıdakilerden birini yapması gerekir:
- Üç senkron çoğaltıcı bulundurun (yalnızca SQL Server Enterprise sürümü) veya
- İki kopya (birincil ve ikincil) ve yalnızca yapılandırma amacıyla bir kopya bulunuyor.
AG yapılandırmaları için Dış veya Yok küme türleri kullanıldığında manuel yük devretmeler gerçekleşebilir. Yalnızca yapılandırma amaçlı çoğaltma, küme türü Yok olan bir AG ile yapılandırılabilir ancak dağıtımı karmaşıklaştırdığından bu önerilmez. Bu yapılandırmalar için, en az bir eşitlenmiş çoğaltma olması amacıyla, required_synchronized_secondaries_to_commit değerini en az 1 olacak şekilde manuel olarak değiştirin.
Yalnızca yapılandırma amaçlı çoğaltma, SQL Server Express dahil olmak üzere herhangi bir SQL Server sürümünde barındırılabilir. Bu, lisanslama maliyetlerini en aza indirir ve SQL Server Standard sürümündeki AG'lerle çalışmasını sağlar. Gereken üçüncü sunucunun, AG için kullanıcı işlem trafiği almadığından, yalnızca SQL Server için minimum gereksinimi karşılaması gerektiği anlamına gelir.
Yalnızca yapılandırma için kullanılan kopya aşağıdaki davranışa sahiptir:
Varsayılan olarak
required_synchronized_secondaries_to_commit0 olarak ayarlanır. İsterseniz bu el ile 1 olarak değiştirilebilir.Birincil başarısız olursa ve
required_synchronized_secondaries_to_commit0 ise, ikincil çoğaltma yeni birincil olur ve hem okuma hem de yazma için kullanılabilir hale gelir. Değer 1 ise otomatik yük devretme gerçekleşir, ancak diğer kopya çevrimiçi olana kadar yeni işlemler kabul edilmez.İkincil replika başarısız olursa ve
required_synchronized_secondaries_to_commit0 ise, birincil replika işlemleri kabul eder, ancak birincil replika bu noktada başarısız olursa, ikincil replika mevcut olmadığından veri koruması veya yük devretme (el ile veya otomatik) mümkün olmaz.Yalnızca yapılandırma amaçlı olan çoğaltma başarısız olursa, AG normal şekilde çalışmaya devam eder ancak otomatik yük devretme mümkün değildir.
Eşzamanlı ikincil çoğaltma ve yalnızca yapılandırma amaçlı çoğaltma başarısız olursa, birincil işlemleri kabul edemez ve yük devredecek bir yer yoktur.
Birden çok kullanılabilirlik grubu
Pacemaker kümesi veya sunucu kümesi başına birden fazla AG oluşturulabilir. Tek sınırlama sistem kaynaklarıdır. Birincil olan AG'nin sahipliğini gösterir. Farklı AG'ler farklı düğümlere ait olabilir; hepsinin aynı düğümde çalışması gerekmez.
Veritabanları için sürücü ve klasör konumu
Windows tabanlı AG'lerde olduğu gibi, ag'ye katılan kullanıcı veritabanlarının sürücü ve klasör yapısı aynı olmalıdır. Örneğin, kullanıcı veritabanları A Sunucusu'nda
Linux altındaki dinleyici modülü
Dinleyici, AG için isteğe bağlı bir işlevselliktir. Tüm bağlantılar için tek bir giriş noktası sağlar (birincil replikaya okuma/yazma ve/veya ikincil replikalara salt okunur), böylece uygulamalar ve son kullanıcılar verileri hangi sunucunun barındırmakta olduğunu bilmek zorunda kalmaz. WSFC'de bu, bir ağ adı kaynağı ile bir IP kaynağının kombinasyonudur ve AD DS (gerekirse) ve DNS'ye kaydedilir. AG kaynağının kendisi ile birlikte, bu soyutlamayı sağlar. Dinleyici hakkında daha fazla bilgi için bkz. Always On kullanılabilirlik grubu dinleyicisine bağlanma.
Linux altındaki dinleyici farklı yapılandırılır, ancak işlevselliği aynıdır. Pacemaker'da ağ adı kaynağı kavramı yoktur ve AD DS'de oluşturulmuş bir nesne yoktur; Yalnızca Pacemaker'da oluşturulan ve düğümlerden herhangi birinde çalışabilen bir IP adresi kaynağı vardır. Dinleyicinin IP kaynağıyla ilişkilendirilmiş, "kolayca anlaşılabilir isme" sahip bir girişin DNS'de oluşturulması gerekir. Dinleyicinin IP kaynağı yalnızca söz konusu kullanılabilirlik grubu için birincil çoğaltmayı barındıran sunucuda etkindir.
Pacemaker kullanılırsa ve dinleyiciyle ilişkilendirilmiş bir IP adres kaynağı oluşturulursa, IP adresi bir sunucuda durup diğerinde başladığından (bu otomatik veya manuel yük devretme olabilir) kısa bir kesinti yaşanır. Bu, tek bir ad ve IP adresi birleşimi aracılığıyla soyutlama sağlar, ancak kesintiyi maskelemez. Bir uygulamanın, bağlantı kopukluğunu algılayıp yeniden bağlanmak için bir tür özelliğe sahip olarak bu kopukluğu yönetebilmesi gerekir.
Ancak, DNS adı ve IP adresinin birleşimi, WSFC üzerindeki bir dinleyicinin sağladığı sekonder replikalar için salt okunur yönlendirme gibi tüm işlevleri sağlamak için hala yeterli değildir. AG'yi yapılandırdığınızda, dinleyicinin SQL Server'de yapılandırılması gerekir. Bu, sihirbazda ve Transact-SQL söz diziminde görülebilir. Bunun, Windows ile aynı şekilde çalışması için yapılandırılabilmesinin iki yolu vardır:
- Küme türü Dış olan bir AG için, SQL Server'de oluşturulan dinleyiciyle ilişkilendirilmiş IP adresi Pacemaker'da oluşturulan kaynağın IP adresi olmalıdır.
- Küme türü None olan bir AG için, birincil çoğaltmayla ilişkilendirilmiş IP adresini kullanın.
Sağlanan IP adresiyle ilişkilendirilmiş örnek, uygulamalardan gelen salt okunur yönlendirme istekleri gibi şeyler için koordinatör olur.
Windows tabanlı kullanılabilirlik grupları ve çoğaltmalarla birlikte çalışabilirlik
Küme türü Dış veya WSFC olan bir Kullanılabilirlik Grubu'nun çoğaltmaları farklı platformlarda bulunamaz. AG'nin SQL Server Standard edisyonu veya SQL Server Enterprise edisyonu olması durumunda da bu geçerlidir. Başka bir deyişle, altta yatan kümeye sahip geleneksel AG yapılandırmasında, bir çoğaltma WSFC'de, diğeri ise Pacemaker ile Linux'ta olamaz.
KÜME türü NONE olan bir AG'nin çoğaltmaları işletim sistemi sınırlarını aşabilir, bu nedenle aynı AG'de hem Linux hem de Windows tabanlı çoğaltmalar olabilir. Burada birincil çoğaltmanın Windows tabanlı olduğu, ikincil çoğaltmanın ise Linux dağıtımlarından birinde olduğu bir örnek gösterilmiştir.
Dağıtılmış AG, işletim sistemi sınırlarını da aşabilir. Temel alınan AG'ler, nasıl yapılandırıldıklarına ilişkin kurallara bağlıdır; örneğin, yalnızca Dış (External) ve yalnızca Linux ile yapılandırılmış olabilirler, ancak katıldığı AG bir WSFC kullanılarak da yapılandırılabilir. Aşağıdaki örneği göz önünde bulundurun:
İlgili içerik
- Linux'ta yüksek kullanılabilirlik için SQL Server kullanılabilirlik grubunu yapılandırın
- Linux'ta okuma ölçeği için bir SQL Server kullanılabilirlik grubu yapılandırın
- SQL Server kullanılabilirlik grupları için Pacemaker kümesi yapılandırma
- Windows ve Linux (platformlar arası) SQL Server Always On erişilebilirlik grubunu yapılandırın