Yüksek kullanılabilirlik çözümlerini her zaman görselleştirmeyi sevdiğim yol şudur:
SQL Server Yük Devretme Kümesi Örneği (FCI)
Son derece müsait olan nedir? Tüm örnek. Tüm sunucu nesnelerini içerir (girişler, SQL Server Agent işleri vb.). Bu aynı zamanda veritabanlarını ve içerdikleri varlıkları da içerir. Oldukça uygun olan SQL Server örnekleri için mükemmel bir çözüm, çünkü bu verilen çözümle sınırlılık seviyesi olacak.
Peki ya raporlama? Yok, NULL, var olmayan. Yük devretme kümesi örneği, VNN, vb. Örneğini içeren küme grubunu sağlayan etkin bir düğüme sahiptir ve diğer tüm düğümler pasif, boşta (boş küme grubu söz konusu olduğunda) ve yerine çalışma için beklemededir.
Yük devretme olduğunda ne olur? Bir FCI'nın kapalı kalma süresi, pasif düğümün küme kaynağını almak ve SQL Server örneğini çalışan bir duruma getirmek için harcadığı zaman miktarına göre belirlenir. Bu genellikle zamanla asgari düzeydedir.
Herhangi bir müşteri soyutlama? Evet, bu başarısızlık küme örneği için sanal ağ adı ile yerleşik olarak inşa edilecek. Bu, her zaman şu anda SQL Server küme kaynağını sağlayan etkin düğüme işaret edecektir.
AlwaysOn Kullanılabilirlik Grupları
Son derece müsait olan nedir? Bir uygunluk grubu, burada yüksek kullanılabilirliğin mantıksal bir içeriği olacak, oysa bir kullanılabilirlik grubu bir dizi veri tabanından ve bir sanal ağ adından (dinleyici, isteğe bağlı bir küme kaynağı) oluşur. Girişler ve SQL Server Agent işleri gibi sunucu nesnelerinin HA çözümünün bir parçası olmayacağına ve bunların bir uygunluk grubuyla düzgün bir şekilde uygulanmasını sağlamak için özel dikkat gösterilmesi gerektiğine dikkat etmek önemlidir. Aşırı yük gerekliliği değil, dikkat edilmesi gerekenler.
Peki ya raporlama? Bu raporlama için harika bir çözüm olsa da, muhtemelen raporlama örneğimde senkronize bir kopya kullanmam. Senkronize ve asenkronize olmak üzere iki taahhüt ilişkisi vardır. Bence ve pratikte gördüğüm kadarıyla, eşzamanlı ikincil eşlemenizin orada bir felaketi beklediği. Bir sorun durumunda, veri kaybı yaşanmayan bir yük devretme almaya hazır olan kopya olarak düşünün. Sonra, bu raporlanan iş yükünü idare edebilecek eşzamansız kopyalar var. Bu kopyayı yukarıda belirtilen çözüm olarak kullanmıyorsunuz, raporlama gibi şeyler için de ustaca kullanıyorsunuz. Raporlama iş yükleri bu kopyaya gösterilebilir (doğrudan veya dolaylı olarak dinleyici aracılığıyla salt okunur yönlendirme yoluyla).
Yük devretme olduğunda ne olur? Otomatik yük devretme ile eşleştirilmiş olan senkronize bir ikincil ikincil çoğaltma için bu, SECONDARY_NORMAL öğesinden PRIMARY_NORMAL sürümüne eşlenen çoğaltma rolü durumu olacaktır. Otomatik yük devretme yapabilmek için, şu anda senkronize olan eşzamanlı bir ikincil çoğaltmanız gerekir ve gerçekte bu yük devretmenin ne zaman gerçekleşeceğini belirlemek için uygulanan Esnek Yük Devretme Politikası'dır . Bu politika gerçekten yapılandırılabilir.
Herhangi bir müşteri soyutlama? Evet, isteğe bağlı olarak bir AlwaysOn Uygunluk Grubu dinleyicisini yapılandırabilirsiniz. Bu temelde mevcut birincil kopyalamaya işaret eden yalnızca sanal bir ağ adıdır (WSFC aracılığıyla AG'nin küme grubunda küme kaynağı olarak görülebilir). Bu, raporlama iş yükünüzü değiştirmenin ve ReadOnly trafiğini yönlendirmek istediğiniz sunucularda salt okunur bir yönlendirme listesi ayarlamanın (bu, SQL için .NET Framework Sağlayıcısı ile bağlantı dizesiyle ayarlanır) önemli bir parçasıdır Sunucu, bu ReadOnly olarak ayarlanan Application Intent parametresi olacaktır . Ayrıca, ikincil çoğaltma rolündeyken bu raporlama iş yükünü almak istediğiniz her kopya için salt okunur bir yönlendirme URL'si ayarlamanız gerekir.
İşlem çoğaltma
Son derece müsait olan nedir? Bu tartışmalı, ama hiçbir şey söylemeyeceğim . Çoğaltmayı herhangi bir şekilde kullanılabilirliği yüksek bir çözüm olarak görmüyorum. Evet, veri değişiklikleri abonelere iletiliyor, ancak yayın / makale düzeyinde konuşuyoruz. Bu, verilerin bir alt kümesi olacak (tüm verileri içerebilir, ancak bu uygulanmayacak. Yani, yayıncı veritabanında yeni bir tablo oluşturursunuz ve bu otomatik olarak abonelere gönderilmez). HA gittikçe, bu varilin dibidir ve onu kaya gibi bir HA çözeltisiyle oraya gruplayamayacağım.
Peki ya raporlama? Bir veri alt kümesinde raporlama için harika bir çözüm, bunun hakkında soru yok. Çok işlemli bir 1 TB veritabanınız varsa ve bu raporlanan iş yükünü OLTP veritabanından uzak tutmak istiyorsanız, işlem çoğaltması raporlama iş yükü için bir alt veri grubunu bir aboneye (veya abonelere) itmenin harika bir yoludur. Raporlama iş yükünüz yaklaşık 50 GB ise, bu 1 TB’lık veri dışında ne olur? Bu akıllı bir çözümdür ve iş gereksinimlerinizi karşılamak için nispeten yapılandırılabilir.
özet
(Kısmen işletme tarafından) cevaplanması gereken birkaç soru var.
- Neyin yüksek oranda erişilebilir olması gerekiyor ?
- SLA , HA / DR için neyi belirler?
- Ne tür raporlamalar olacak ve hangi gecikmeler kabul edilebilir?
- Coğrafi olarak dağınık HA ile başa çıkmak için neye ihtiyacımız var ? (depolama çoğaltması pahalıdır, ancak bir FCI’da olması zorunludur. AG’ler, bağımsız örneklerden paylaşılan depolama gerektirmezler ve paylaşılan depolama gereksinimini ortadan kaldıracak yeterlilikte bir dosya paylaşımına şahit olabilirsiniz)