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.
Şunlar için geçerlidir:Linux üzerinde SQL Server
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. WSFC dışında Windows ve Linux'ta aynı şekilde çalışan AG'lerin temelleri için bkz. Always On kullanılabilirlik grubu nedir?
Uyarı
Okuma ölçeğindeki kullanılabilirlik grupları veya Linux'taki kullanılabilirlik grupları gibi Windows Server Yük Devretme Kümelemesi'ni (WSFC) kullanmamış kullanılabilirlik gruplarında, kümeyle ilgili kullanılabilirlik grubu DMV'lerindeki 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, Linux üzerinde SQL Server 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 Dağıtılmış İşlem Düzenleyicisi (DTC), SQL Server 2017 CU 16'dan itibaren 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'ye ihtiyaç duyuyorsa Windows'da SQL Server'ı dağıtın.
- Yüksek kullanılabilirlik gerektiren Linux tabanlı dağıtımlarda WSFC yerine kümeleme için Pacemaker kullanılır.
- Windows'ta Çalışma Grubu Kümesi senaryosu dışındaki çoğu AG yapılandırmasından farklı olarak Pacemaker hiçbir zaman Active Directory Etki Alanı Hizmetleri'ne (AD DS) ihtiyaç duymaz.
- Bir AG'nin bir düğümden diğerine nasıl başarısız olduğu Linux ile Windows arasında farklıdır.
- gibi
required_synchronized_secondaries_to_commitbazı 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 Erişilebilirlik Grubu (AG), toplam iki çoğaltıcıya sahip olabilir: biri birincil olmak üzere, diğeri de yalnızca erişilebilirlik amacıyla kullanılabilecek ikincil çoğaltıcı. 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ı en fazla dokuz olabilir: bir birincil ve en fazla sekiz ikincil, bunlardan en fazla üç tanesi (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üyle 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, başarısız bir düğüm için küme yeter sayısı ve izole etme işlemlerinin, yapılandırma amaçlı bir çoğaltma gibi tüm SQL Server gereksinimlerine ek olarak, 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 'de (14.x) yeni olan, 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 External'ın kullanılması, yük devretme modunun da External olarak ayarlanmasını gerektirir (bu özellik SQL Server 2017'de (14.x) de 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 içerisinde, 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) AG'ler tarafından kullanılan, required_synchronized_secondaries_to_commit adlı yeni 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ı. Değer required_synchronized_secondaries_to_commit varsayılan olarak ayarlanır ve Pacemaker/ SQL Server tarafından korunur. Bu değeri el ile geçersiz kılabilirsiniz.
Yeni sıra numarasının required_synchronized_secondaries_to_commit içinde depolandığı sys.availability_groups birleşimi, örneğin otomatik yük devretmenin gerçekleşebileceğini, Pacemaker 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>
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 kapsamında tahkim, tüm meta verilerin depolandığı SQL Server'da gerçekleşir. 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:
- Üç zaman uyumlu çoğaltmaya sahip olun (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.
Sql Server Express de dahil olmak üzere herhangi bir SQL Server sürümünde yalnızca yapılandırma amaçlı çoğaltma 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. Bu, AG için kullanıcı işlem trafiği almadığından, gerekli üçüncü sunucunun yalnızca SQL Server için en düşük belirtimi 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, bir 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ı Sunucu A'daysa /var/opt/mssql/userdata , aynı klasör Sunucu B'de bulunmalıdır. Bunun tek özel durumu , Windows tabanlı kullanılabilirlik grupları ve çoğaltmalarıyla birlikte çalışabilirlik bölümünde not edilir.
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, SQL Server'da yine de bir dinleyicinin yapılandırılması gerekir. Bu, sihirbazda ve Transact-SQL söz diziminde görülebilir. Bunun Windows'da olduğu gibi çalışması için yapılandırılabilmesinin iki yolu vardır:
- Harici küme türüne sahip bir AG için, SQL Server'da 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 replikalarla 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 sürümü mü yoksa SQL Server Enterprise sürümü mü olduğu bu durum 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ırma
- Linux'ta okuma ölçeği için SQL Server kullanılabilirlik grubu yapılandırma
- SQL Server kullanılabilirlik grupları için Pacemaker kümesi yapılandırma
- Windows ve Linux'ta SQL Server Always On kullanılabilirlik grubunu yapılandırma (platformlar arası)