Kullanılabilirlik Grupları kesintisiz yük devretme sağlayabilir mi (sorgu hatası olmadan)?


9

SQL Server 2012'de Kullanılabilirlik Grupları özelliğini test ediyorum ve birincil sunucu ikincil sunucuda başarısız olduğunda yaklaşık 15 saniye kapalı kalma süresi olduğunu görüyorum. Bu süre zarfında yürütülen tüm SQL sorguları, yük devretme geçişi tamamlanana kadar başarısız olur.

Bunu 0 saniyeye indirmenin ve yük devretme geçişi sırasında sorguların başarısız olmasını önlemenin bir yolu var mı?

Başka bir deyişle, başarısızlık yerine birincil sunucuya yeniden yönlendirilemediğinde herhangi bir sorguyu çalıştırmanın bir yolu var ... ve başarısız olmak yerine ikincil sunucuya hemen bağlanmak için yeni db bağlantılarını almanın herhangi bir yolu var mı? yük devretme geçişi sırasında bağlanır?

Şu anda Kullanılabilirlik Grubunda ayarlanmış 2 sunucum var.


1
Bu soruyu (ve yanıtları) kontrol edin: dba.stackexchange.com/questions/25124/…
Max Vernon

Bunu yalnızca Oracle RAC yapabilir.
Richard Brown

Veya linux loadballancer'ı, sql sunucusunun önünde, HAproxy gibi uygun ayarlarda kullanmalısınız.
kakaz

Yanıtlar:


9

Hayır, AlwaysOn (veya genel olarak SQL Server'da bildiğim kadarıyla) sıfır kesinti kesintisi yapmanın bir yolu yoktur. Bunu yapmak için, bağlandığınız SQL Server'ın sorgu ortasında başka bir düğüme durum aktarımı yapması gerekir ve birçok yük devretme beklenmedik olduğundan, bu mümkün değildir.

Ancak, AlwaysOn'da "salt okunur sekonderleri" etkinleştirebilirsiniz ve daha sonra birincil sunucu başarısız olduğunda okuyucularınızın sıfır kesinti süresi olur - SELECT sorgularını yapmak için yine de ikincil bir kopyaya bağlandıkları için yük devretmeye bile dikkat edin. "Yazma" bağlantısı açık olan kullanıcılar için hala bir kesinti olacaktır, ancak kullanıcı tabanınızın en azından bir kısmı kesintisiz olacaktır.


"Salt okunur ikinciller" etkinken, do herhangi okuma istekleri birincil söz konusu olduğunda veya her zaman Sekonder parçaların üzerinde yapılır? Ve ikincil sunucunun bu durumda bir hatası varsa ne olur?
John

İkincil okuma, yalnızca istemciyi ikincil sunucuya bağlanacak şekilde yapılandırırsanız gerçekleşir.
Max Vernon

1
Görüyorum ki bu daha akıllı bir istemci uygulaması gerektiriyor.
John

@JohnHughes: Bu Microsoft belgesine bakın (sayfa 5'in ortası): tinyurl.com/9dtvndv ve şu blog yazısı: tinyurl.com/8cyr9za . Daha akıllı bir uygulamaya ihtiyacınız yoktur - özelliği etkinleştirdiğinizde, herhangi bir uygulamanın okunabilir ikincil sunucuya bağlanabileceğini belirtebilirsiniz, ancak DDL / DML işlemi yapma girişimleri başarısız olur. Daha yeni yerel istemciyi kullanıyorsanız "ReadIntent" belirtebilirsiniz, bu da yeni istemcinin ikincil sayfanızdan okuyacağı anlamına gelirken, eski istemciler birincil işleminize karşı tüm işlemleri yapmaya devam eder. Bir seçenek ama biraz okumaya ihtiyaç var.
SqlRyan

SqlRyan doğrudur, istemcilerin bağlantısı kesilmeden AlwaysOn Kullanılabilirlik Grupları'nı kullanarak bir SQL Server örneğini yerine getirmenin bir yolu yoktur.
mrdenny
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.