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 sunucularında SQL Server Always On kullanılabilirlik grupları için desteklenen dağıtım yapılandırmaları sunulmaktadır. Kullanılabilirlik grubu yüksek kullanılabilirlik ve veri korumayı destekler. Otomatik hata algılama, otomatik yük devretme ve yük devretmeden sonra saydam yeniden bağlantı yüksek kullanılabilirlik sağlar. Senkrone edilmiş çoğaltmalar veri koruması sağlar.
Bir Windows Server Yük Devretme Kümesinde (WSFC), yüksek kullanılabilirlik elde etmek amacıyla iki eşzamanlı çoğaltıcı ve oy çoğunluğunu sağlamak için üçüncü bir sunucu veya dosya paylaşımı kullanılır. Dosya paylaşımı tanığı kullanılabilirlik grubu yapılandırmasını doğrular- eşitlemenin durumu ve örneğin çoğaltmanın rolü. Bu yapılandırma, yük devretme hedefi olarak seçilen ikincil çoğaltmanın en son veri ve kullanılabilirlik grubu yapılandırma değişikliklerine sahip olmasını sağlar.
WSFC, kullanılabilirlik grubu çoğaltmaları ile dosya paylaşımı tanığı arasında yük devretme tahkimi için yapılandırma meta verilerini eşitler. Bir kullanılabilirlik grubu WSFC'de olmadığında, SQL Server örnekleri yapılandırma meta verilerini master veritabanında depolar.
Örneğin, Linux kümesindeki bir kullanılabilirlik grubu CLUSTER_TYPE = EXTERNAL. Yük devretmeyi arbitre etmek için bir WSFC yok. Bu durumda yapılandırma meta verileri SQL Server örnekleri tarafından yönetilir ve korunur. Bu kümede tanık sunucusu olmadığından yapılandırma durumu meta verilerini depolamak için üçüncü bir SQL Server örneği gerekir. Üç SQL Server örneğinin tümü birlikte küme için dağıtılmış meta veri depolama alanı sağlar.
Küme yöneticisi, kullanılabilirlik grubundaki SQL Server örneklerini sorgulayabilir ve yüksek kullanılabilirliği korumak için yük devretmeyi düzenleyebilir. Linux kümesinde Pacemaker, küme yöneticisidir.
SQL Server 2017 (14.x) CU 1'den itibaren, CLUSTER_TYPE = EXTERNAL bulunan bir kullanılabilirlik grubu için yüksek kullanılabilirlik, iki senkron çoğaltma ve yalnızca yapılandırma çoğaltması ile etkinleştirilir. Yalnızca yapılandırma çoğaltması, SQL Server 2017 (14.x) CU 1 veya sonraki sürümlerinde (SQL Server Express sürümü dahil) barındırılabilir. Yalnızca yapılandırma çoğaltması, veritabanındaki kullanılabilirlik grubuyla master ilgili yapılandırma bilgilerini korur, ancak kullanılabilirlik grubundaki kullanıcı veritabanlarını içermez.
Yapılandırma varsayılan kaynak ayarlarını nasıl etkiler?
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT küme kaynak ayarı, birincil çoğaltıcı her işlemi onaylamadan önce, belirtilen sayıda ikincil çoğaltıcıların günlüğe işlem verisi yazmasını garanti eder. Dış küme yöneticisi kullandığınızda, bu ayar hem yüksek kullanılabilirliği hem de veri korumayı etkiler. Ayarın varsayılan değeri, küme kaynağının oluşturulduğu sırada mimariye bağlıdır. SQL Server kaynak aracısını mssql-server-ha yüklediğinizde ve kullanılabilirlik grubu için bir küme kaynağı oluşturduğunuzda, küme yöneticisi kullanılabilirlik grubu yapılandırmasını algılar ve buna göre ayarlar REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT .
Yapılandırma tarafından destekleniyorsa, kaynak aracısı parametresi REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT yüksek kullanılabilirlik ve veri koruması sağlayan değere ayarlanır. Daha fazla bilgi için bkz. Pacemaker için SQL Server kaynak aracısını anlama.
Aşağıdaki bölümlerde küme kaynağı için varsayılan davranış açıklanmaktadır.
Yüksek kullanılabilirlik, veri koruma ve okuma ölçeği için belirli iş gereksinimlerini karşılamak için bir kullanılabilirlik grubu tasarımı seçin.
Aşağıdaki yapılandırmalarda kullanılabilirlik grubu tasarım desenleri ve her desenin özellikleri açıklanmaktadır. Bu tasarım desenleri, yüksek kullanılabilirlik çözümlerine sahip CLUSTER_TYPE = EXTERNAL kullanılabilirlik grupları için geçerlidir.
- Üç eşzamanlı replikalar
- İki eşzamanlı replikalar
- İki eş zamanlı çoğaltma ve sadece yapılandırma için kullanılan çoğaltma
Üç eşzamanlı çoğaltma
Bu yapılandırma üç eşzamanlı çoğaltmadan oluşur. Varsayılan olarak, yüksek kullanılabilirlik ve veri koruması sağlar. Ayrıca okuma ölçeği de sağlayabilir.
Üç senkron çoğaltmaya sahip bir kullanılabilirlik grubu, okuma ölçeği, yüksek kullanılabilirlik ve veri koruması sağlayabilir. Aşağıdaki tabloda kullanılabilirlik davranışı açıklanmaktadır.
| Kullanılabilirlik davranışı | okuma ölçeği | Yüksek kullanılabilirlik & veri koruma |
Veri koruma |
|---|---|---|---|
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT= |
0 | 1 1 | 2 |
| Birincil kesinti | Otomatik sistem devretme. Veri kaybı olabilir. Yeni birincil R/W'dir. | Otomatik sistem devretme. Yeni birincil R/W'dir. | Otomatik sistem devretme. Yeni birincil, eski birincilin kurtarılıp kullanılabilirlik grubuna ikincil olarak yeniden katılmasına kadar okuma veya yazma işlemleri için kullanılamaz. |
| Bir yedek kopya kesintisi | Birincil R/W'dir. Okuma işlemleri için uygun ikincil mevcuttur. | Birincil R/W'dir. Okuma işlemleri için uygun ikincil mevcuttur. | Birincil veritabanı, başarısız olan ikincil kurtarılıp kullanılabilirlik grubuna yeniden katılana kadar okuma veya yazma işlemleri için kullanılamaz durumda kalır. |
| İki yedek kopya kesintisi | Birincil, ikincil replikalardan biri kurtarılıp kullanılabilirlik grubuna yeniden katılana kadar yalnızca okumalar için kullanılabilir, yazma işlemleri için kullanılamaz. | Birincil, ikincil replikalardan biri kurtarılıp kullanılabilirlik grubuna yeniden katılana kadar yalnızca okumalar için kullanılabilir, yazma işlemleri için kullanılamaz. | Birincil, tüm başarısız ikincil kopyalar kurtarılıp geri dönüp kullanılabilirlik grubuna yeniden katılıncaya kadar okuma veya yazma işlemleri için kullanılamaz durumda kalır. |
| Birincil ve bir ikincil çoğaltma kesintisi | Otomatik sistem devretme. Veri kaybı olabilir. İkincil çoğaltmalardan biri kurtarılıp kullanılabilirlik grubuna tekrar katılıncaya kadar yeni birincil yalnızca okumalar için kullanılabilir, yazma işlemleri için kullanılamaz. | Otomatik sistem devretme. Yeni birincil, yalnızca ikincil çoğaltmalardan biri kurtarılıp kullanılabilirlik grubuna yeniden katılana kadar okuma ve yazma işlemleri için kullanılabilir. | Otomatik sistem devretme. Eski birincil ve ikincil çoğaltma kullanılabilirlik grubuna yeniden katılıp toparlanmadıkça, yeni birincil okuma veya yazma işlemleri için kullanılamaz. |
1 Varsayılan
İki eşzamanlı çoğaltma
Bu yapılandırma, veri korumayı etkinleştirir. Diğer kullanılabilirlik grubu yapılandırmalarında olduğu gibi okuma ölçeğini etkinleştirebilir. Eşzamanlı iki replika yapılandırması otomatik yüksek kullanılabilirlik sağlamaz. İki çoğaltma yapılandırması yalnızca SQL Server 2017 (14.x) RTM için geçerlidir ve artık SQL Server 2017 (14.x) sürümünün daha yüksek (CU1 ve üzeri) sürümleriyle desteklenmez.
İki senkron çoğaltmaya sahip bir kullanılabilirlik grubu, okuma kapasitesi ve veri koruması sağlar. Aşağıdaki tabloda kullanılabilirlik davranışı açıklanmaktadır.
| Kullanılabilirlik davranışı | okuma ölçeği | Veri koruma |
|---|---|---|
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT= |
0 1 | 1 |
| Birincil kesinti | Otomatik sistem devretme. Veri kaybı olabilir. Yeni birincil R/W'dir. | Otomatik sistem devretme. Eski birincil kurtarılıp kullanılabilirlik grubuna ikincil olarak yeniden katılana kadar yeni birincil, okuma veya yazma işlemleri için kullanılamaz. |
| Bir yedek kopya kesintisi | Ana R/W, veri kaybı riski altında çalışıyor. | Birincil veritabanı, başarısız olan ikincil kurtarılıp kullanılabilirlik grubuna yeniden katılana kadar okuma veya yazma işlemleri için kullanılamaz durumda kalır. |
1 Varsayılan
İki eşzamanlı çoğaltma ve sadece yapılandırma amaçlı çoğaltma
İki (veya daha fazla) senkron çoğaltmaya ve yalnızca yapılandırma amaçlı bir çoğaltmaya sahip bir kullanılabilirlik grubu, veri koruması sağlar ve yüksek kullanılabilirlik de sağlayabilir. Aşağıdaki diyagram bu mimariyi temsil eder:
- Kullanıcı verilerinin ikincil kopyaya eş zamanlı çoğaltılması. Ayrıca kullanılabilirlik grubu yapılandırma meta verilerini de içerir.
- Kullanılabilirlik grubu yapılandırma meta verilerinin eşzamanlı çoğaltılması. Kullanıcı verilerini içermez.
Kullanılabilirlik grubu diyagramında, birincil çoğaltma yapılandırma verilerini hem ikincil çoğaltmaya hem de yalnızca yapılandırma çoğaltmasına iletir. İkincil kopya da kullanıcı verilerini alır. Yapılandırma amacıyla kullanılan çoğaltma, kullanıcı verilerini almaz. İkincil yedek eşzamanlı kullanılabilirlik modu aktif. Yalnızca yapılandırma çoğaltması, kullanılabilirlik grubundaki veritabanlarını içermez; yalnızca kullanılabilirlik grubu hakkında meta verileri içerir. Yalnızca yapılandırma çoğaltması üzerindeki yapılandırma verileri eşzamanlı olarak taahhüt edilir.
Uyarı
SQL Server 2017 (14.x) CU 1'e özgü olan yalnızca yapılandırma amaçlı çoğaltma içeren bir kullanılabilirlik grubu yenidir. Kullanılabilirlik grubundaki tüm SQL Server örnekleri SQL Server 2017 (14.x) CU 1 veya sonraki sürümleri olmalıdır.
için REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT varsayılan değer 0'dır. Aşağıdaki tabloda kullanılabilirlik davranışı açıklanmaktadır.
| Kullanılabilirlik davranışı | Yüksek kullanılabilirlik & veri koruma |
Veri koruma |
|---|---|---|
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT= |
0 1 | 1 |
| Birincil kesinti | Otomatik sistem devretme. Yeni birincil R/W'dir. Veri kaybı olabilir. | Otomatik sistem devretme. Eski birincil kurtarılıp kullanılabilirlik grubuna ikincil olarak yeniden katılana kadar yeni birincil, okuma veya yazma işlemleri için kullanılamaz. |
| İkincil kopya kesintisi | Birincil birim, veri kaybına sürekli maruz kalan Okuma/Yazma işlemini gerçekleştirir (birincil birim başarısız olursa ve kurtarılamazsa). Birincil sistem de başarısız olursa otomatik yük devretme gerçekleşmez. | Birincil veritabanı, başarısız olan ikincil kurtarılıp kullanılabilirlik grubuna yeniden katılana kadar okuma veya yazma işlemleri için kullanılamaz durumda kalır. Birincil başarısız olursa devredilecek yedek yok. |
| Yalnızca konfigürasyon replikası kesintisi | Birincil R/W'dir. Birincil sistem de başarısız olursa otomatik yük devretme gerçekleşmez. | Birincil R/W'dir. Birincil sistem de başarısız olursa otomatik yük devretme gerçekleşmez. |
| Zaman uyumlu ikincil + yapılandırma yalnızca çoğaltma kesintisi | Birincil sunucu okuma veya yazma işlemleri için uygun değil. Otomatik yük devretme yok. | Birincil sunucu okuma veya yazma işlemleri için uygun değil. Birincil başarısız olursa devredilecek yedek yok. |
1 Varsayılan
Uyarı
Yalnızca yapılandırma çoğaltmasını barındıran SQL Server örneği, diğer veritabanlarını da barındırabilir. Ayrıca birden fazla kullanılabilirlik grubu için yalnızca yapılandırma veritabanı olarak katılabilir.
Gereksinimler
- Yalnızca yapılandırma çoğaltmasına sahip bir kullanılabilirlik grubundaki tüm çoğaltmalar SQL Server 2017 (14.x) CU 1 veya sonraki sürümleri olmalıdır.
- SQL Server'ın herhangi bir sürümü, SQL Server Express de dahil olmak üzere yalnızca bir yapılandırma çoğaltması barındırabilir.
- Kullanılabilirlik grubunun, birincil çoğaltmaya ek olarak en az bir ikincil çoğaltmaya daha ihtiyacı vardır.
- Yalnızca yapılandırma çoğaltmaları, SQL Server örneği başına en fazla çoğaltma sayısına kadar sayılmaz. SQL Server standart sürümü en fazla üç çoğaltmaya, SQL Server Enterprise Edition ise en fazla 9 çoğaltmaya izin verir.
Değerlendirmeler
- Kullanılabilirlik grubu başına yalnızca bir yapılandırma çoğaltmasına izin verilir.
- Sadece yapılandırma için olan bir çoğaltma, birincil çoğaltma olamaz.
- Yalnızca yapılandırma için olan bir çoğaltmanın kullanılabilirlik modunu değiştiremezsiniz. Yalnızca yapılandırma çoğaltmasından zaman uyumlu veya zaman uyumsuz ikincil çoğaltmaya geçmek için, yalnızca yapılandırma çoğaltmasını kaldırın ve gerekli kullanılabilirlik moduna sahip ikincil bir çoğaltma ekleyin.
- Yalnızca yapılandırma replikası, kullanılabilirlik grubu meta verileriyle eş zamanlıdır. Kullanıcı verileri yok.
- Birincil kopyası ve yalnızca bir konfigürasyon kopyası olan ancak ikincil kopya olmayan bir kullanılabilirlik grubu geçerli değildir.
- SQL Server Express sürümünün bir örneğinde kullanılabilirlik grubu oluşturamazsınız.
Pacemaker için SQL Server kaynak aracısını anlama
SQL Server 2017 (14.x), bir çoğaltmanın sequence_number olarak işaretlendiğinde güncel olup olmadığını göstermek için sys.availability_groups ile SYNCHRONOUS_COMMIT'i tanıttı.
sequence_number, yerel kullanılabilirlik grubu çoğaltmasının, kullanılabilirlik grubundaki diğer çoğaltmalara göre up-totarihinde ne kadar güncel olduğunu gösteren monoton olarak artan bir BIGINT'tir. Yük devretme gerçekleştirme, çoğaltma ekleme veya kaldırma ve diğer kullanılabilirlik grubu işlemleri bu sayıyı güncelleştirir. Sayı birincilde güncellenir, ardından ikincil kopyalara iletilir. Bu nedenle up-to-date olan ikincil çoğaltma birincil çoğaltmayla aynıdır sequence_number .
Pacemaker bir replikayı birincil hale getirmeye karar verince, önce sıra numarasını ayıklamak ve depolamak için tüm replikalara bir bildirim gönderir (bu bildirim ön yükseltme bildirimi olarak adlandırılır). Ardından Pacemaker, bir çoğaltmayı birinci yapmaya çalıştığında, çoğaltma yalnızca kendi sıra numarası tüm çoğaltmalar arasındaki en yüksek numara olduğunda kendini yükseltir, aksi takdirde yükseltme işlemini reddeder. Bu şekilde, yalnızca en yüksek sıra numarasına sahip çoğaltma birincil olarak terfi ettirilebilir ve veri kaybı olup olmadığı kontrol edilir.
Yükseltme için kullanılabilir en az bir çoğaltma önceki birincil ile aynı sıra numarasına sahip olduğu sürece yükseltmenin çalışması garanti edilir. Varsayılan davranış, Pacemaker kaynak aracısının REQUIRED_COPIES_TO_COMMIT'ü otomatik olarak ayarlaması ve en az bir senkron işleme ikincil replikasının güncel ve kullanılabilir olmasını sağlaması ve otomatik yük devretme hedefi olmasıdır. Her izleme eyleminde değeri REQUIRED_COPIES_TO_COMMIT ('zaman uyumlu işleme çoğaltmalarının sayısı' / 2) olarak hesaplanır (ve gerekirse güncelleştirilir). Ardından, yük devretme zamanında kaynak aracısı, bunlardan birini birincile yükseltebilmek için ön yükseltme bildirimine yanıt vermesini (total number of replicas - required_copies_to_commit çoğaltmalar) gerektirir. En yüksek sequence_number değerine sahip kopya ana kopya olarak yükseltilir.
Örneğin, bir birincil çoğaltma ve iki zaman uyumlu işleme ikincil çoğaltması olmak üzere üç zaman uyumlu çoğaltmaya sahip bir kullanılabilirlik grubu örneğini ele alalım.
REQUIRED_COPIES_TO_COMMIT3 / 2 = 1Ön yükseltme eylemine yanıt vermek için gereken replika sayısı 3 - 1 = 2'dir. Bu nedenle yük devretmenin tetiklenebilmesi için iki kopyanın aktif olması gerekir. Birincil kesinti meydana geldiğinde, ikincil çoğaltmalardan biri yanıt vermiyor ve yalnızca bir ikincil çoğaltma önceden terfi etme eylemine yanıt veriyorsa, kaynak aracısı yanıt veren ikincilin en yüksek önceliğe sahip olduğunu garantileyemez ve yük devretme tetiklenmez.
Kullanıcı varsayılan davranışı geçersiz kılmayı seçebilir ve kullanılabilirlik grubu kaynağını daha önce gösterildiği gibi otomatik olarak ayarlanmayacak REQUIRED_COPIES_TO_COMMIT şekilde yapılandırabilir.
Önemli
REQUIRED_COPIES_TO_COMMIT olduğunda 0 veri kaybı riski vardır. Birincil sistemde kesinti olması durumunda kaynak yöneticisi, otomatik olarak yük devretmeyi tetiklemez. Kullanıcı, ana sistemin toparlanmasını mı bekleyeceğine yoksa manuel olarak geçiş yapacağına karar vermelidir.
REQUIRED_COPIES_TO_COMMIT öğesini 0 olarak ayarlamak için şunu çalıştırın:
sudo pcs resource update <ag_cluster> required_copies_to_commit=0
crm kullanan eşdeğer komut (SLES üzerinde) şöyledir:
sudo crm resource param <ag_cluster> set required_synchronized_secondaries_to_commit 0
Varsayılan hesaplanan değere dönmek için şunu çalıştırın:
sudo pcs resource update <ag_cluster> required_copies_to_commit=
Uyarı
Kaynak özelliklerinin güncelleştirilmesi tüm çoğaltmaların durmasına ve yeniden başlatılmasına neden olur. Bu, birincilin geçici olarak ikincil hale düşürüleceği, sonra tekrar yükseltileceği ve bu durumun geçici yazma erişilememesine neden olacağı anlamına gelir. için REQUIRED_COPIES_TO_COMMIT yeni değer yalnızca çoğaltmalar yeniden başlatıldıktan sonra ayarlanır, bu nedenle pcs komutu çalıştırıldığında anlık olarak ayarlanamaz.
Yüksek kullanılabilirlik ve veri korumayı dengeleme
Yukarıdaki varsayılan davranış, iki senkron replikasyon (birincil + ikincil) durumu için de geçerlidir. Pacemaker varsayılan olarak REQUIRED_COPIES_TO_COMMIT = 1 ikincil çoğaltmanın maksimum veri koruması için her zaman güncel olduğundan emin olur.
Uyarı
Bu, ikincil çoğaltmada planlanan veya planlanmamış kesintiler dolayısıyla birincil çoğaltmanın kullanılamama riskinin artmasına neden olur. Kullanıcı, kaynak aracısının varsayılan davranışını değiştirmeyi ve REQUIRED_COPIES_TO_COMMIT öğesini 0 olarak geçersiz kılmayı seçebilir.
sudo pcs resource update <ag1> required_copies_to_commit=0
Geçersiz kılındıktan sonra kaynak aracısı yeni ayarı REQUIRED_COPIES_TO_COMMIT için kullanır ve hesaplamayı durdurur. Kullanıcıların bunu el ile uygun şekilde güncelleştirmeleri gerekir (örneğin, çoğaltma sayısını artırırlarsa).
Aşağıdaki tablolarda, farklı kullanılabilirlik grubu kaynak yapılandırmalarındaki birincil veya ikincil çoğaltmalar için bir kesintinin sonucu açıklanmaktadır:
Kullanılabilirlik grubu - iki eşzamanlı kopya
| Konfigürasyon | Birincil kesinti | Bir yedek kopya kesintisi |
|---|---|---|
REQUIRED_COPIES_TO_COMMIT = 0 |
Kullanıcının FAILOVER'yi elle düzenlemesi gerekir.Veri kaybı olabilir. Yeni birincil R/W |
Ana R/W, veri kaybı riski altında çalışıyor. |
REQUIRED_COPIES_TO_COMMIT = 1
1 |
Küme otomatik olarak FAILOVER oluştururVeri kaybı yok. Eski birincil üye kurtarılıp kullanılabilirlik grubuna ikincil üye olarak katılana kadar, yeni birincil üye tüm bağlantıları reddeder. |
Birincil sistem, ikincil sistem kurtarana kadar bütün bağlantıları keser. |
1 Pacemaker için SQL Server kaynak aracısının varsayılan davranışı.
Kullanılabilirlik grubu - üç senkron çoğaltma
| Konfigürasyon | Birincil kesinti | Bir yedek kopya kesintisi |
|---|---|---|
REQUIRED_COPIES_TO_COMMIT = 0 |
Kullanıcının FAILOVER'yi elle düzenlemesi gerekir.Veri kaybı olabilir. Yeni birincil R/W |
Birincil R/W |
REQUIRED_COPIES_TO_COMMIT = 1
1 |
Küme otomatik olarak sorunlarıyla karşılaşır FAILOVER.Veri kaybı yok. Yeni birincil: RW |
Birincil R/W |
1 Pacemaker için SQL Server kaynak aracısının varsayılan davranışı.