Her Zaman Kullanılabilirlik Grubunda, Her zaman kullanıcıyı salt okunur örneğine yönlendirir


9

Birincil ve bir okuma özellikli ikincil öğeye sahip bir Always On kullanılabilirlik grubumuz var. Uygulama ekibi için, veritabanına koymak istedikleri verilerin doğruluğunu kontrol etmek için veritabanını kullanan bir kullanıcımız var.

Kullanıcıların yalnızca veritabanından okuma hakları vardır, ancak AG Dinleyici aracılığıyla (SSMS aracılığıyla) bağlandıklarında her zaman etkin düğüme bağlanırlar.

Doğrudan salt okunur örneğe erişmelerini sağlamaya çalıştım, ancak yollarına yapıştılar ve bir veya iki gün sonra tekrar etkin düğüme geri döndüler.

SQL Server'ın bu kullanıcının her zaman salt okuma niyetiyle olacağını ve oraya yönlendireceğini söylemesinin bir yolu var mı?

NOT: Ek bağlantı parametrelerinde 'ApplicationIntent = ReadOnly' ayarını denedim, ancak bu ikincil düğüme yönlendirmiyor gibi görünüyor ve kaçınılmaz olarak yeni başlayanlar için ayarlamayı unutacakları için ideal bir çözüm değil.

SQL Server 2012 Enterprise, Kullanılabilirlik grubu 1 birincil, 1 okunabilir ikincil, eşzamanlı kesinleştirme.

Bir kullanıcının bağlı bir sunucuya veya başka bir sunucuya bağlanmasını istemiyorum. Kullanıcılar SSMS (başka bir uygulama yok) aracılığıyla doğrudan veritabanına bağlanır ve AG Listener'ın (ya da etrafındaki bir şeyin), varsa kullanıcıyı ikincil bir düğüme yönlendirebilmesini isterim (yalnızca okuma erişimi olduğu için) kullanıcılara herhangi bir şey yapmak zorunda kalmadan birincil erişime izin vermez), çünkü makineler arasında hareket ederler ve uygulama amacını eklemeyi unuturlar. Ayrıca ek bağlantı parametrelerine eklemenin sizi her zaman ikincil düğüme yönlendirmediğini görüyorum.


aşağıdaki yorumlara ek olarak, bağlandığınız AG'de veritabanını belirtmeniz gerekir.
swasheck

Yanıtlar:


4

Tüm sorunuza bir cevabım yok (bugün benzer bir soruya cevap verdim ancak https://dba.stackexchange.com/a/137844/36812 ) ama ApplicationIntent = ReadOnly kullanmanın işe yaramadığını belirttiniz uygun şekilde.

Salt okunur yönlendirme URL'leri ayarladınız mı? Kutusundan çıkmadığı için ve yapmazsanız bu ayarlar ve bu bayrak çalışmaz. Sanırım bu işe yaradıysa, gereksinimlerinizi yeniden değerlendirmeye başlayabilirsiniz.

MSDN https://msdn.microsoft.com/en-us/library/hh710054.aspx ve en kolay PowerShell'de talimatlar .

Set-Location SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MyAg
$primaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"
$secondaryReplica = Get-Item "AvailabilityReplicas\SecondaryServer"

Set-SqlAvailabilityReplica -ReadOnlyRoutingConnectionUrl "TCP://PrimaryServer.domain.com:1433" -InputObject $primaryReplica
Set-SqlAvailabilityReplica -ReadOnlyRoutingConnectionUrl "TCP://SecondaryServer.domain.com:1433" -InputObject $secondaryReplica
Set-SqlAvailabilityReplica -ReadOnlyRoutingList "SecondaryServer","PrimaryServer" -InputObject $primaryReplica

1

Ste, istediğin bir nokta ve tıkla çözümü ya da bir yer. Ne yazık ki, bunların hiçbiri şu anda "hazır" biçiminde mevcut değildir. Microsoft bunu Kayıtlı Bir Sunucu için bağlantı ayarlarına ekleseydi, böylece kaydedilebilirdi, ancak ne yazık ki hoş değil.

Bu size iki seçenekten birini sunar:

  • Kendin Bir Şey Yaz
  • Kullanıcı Davranışını Değiştir

Gereksinimlerinizi karşılayabilecek bir şey arayan SNAC - SQL Yerel Erişim İstemcisi için bir Microsoft karşıdan yüklemesi ile karşılaştım. Bu, kullanıcılara doğrudan Salt Okunur ikincil öğeye erişmeleri için bir düğme vermek üzere küçük bir kod yazmanıza olanak tanır. https://blogs.msdn.microsoft.com/alwaysonpro/2013/08/02/connect-to-sql-server-using-application-intent-read-only/

Diğer olasılık, kullanıcıları SSMS üzerinden bağlanırken bağlantı parametreleri diyalogunu doldurmaya zorlamaktır. Bu davranışı zorlamak için, birincil ve ikincil sunuculardaki giriş bilgilerini değiştirmeniz gerekir, birincil adrese bağlanmayı reddeder ve ikincil öğelere bağlanmaya izin verir. Sunucunun durumunu denetlemek ve oturum açma bilgilerini buna göre ayarlamak için bir SQL Agent işi kullanabilirsiniz.

Kuşkusuz, ikincisini yapmaya çalışmadım, ancak teoride işe yaramalı.


-2

Bu şimdi SQL Server 2019'da bir özellik gibi görünüyor.

Gönderen İkincil birincil yineleme okuma / yazma bağlantı yeniden yönlendirme (Always On kullanılabilirlik grupları) resmi belgelerinde:

SQL Server 2019 önizleme CTP 2.0, Her Zaman Açık Kullanılabilirlik Grupları için birincil çoğaltma okuma / yazma bağlantı yeniden yönlendirmesine ikincil olarak tanıtır. Okuma / yazma bağlantısı yeniden yönlendirmesi herhangi bir işletim sistemi platformunda kullanılabilir. Bağlantı dizesinde belirtilen hedef sunucudan bağımsız olarak istemci uygulama bağlantılarının birincil çoğaltmaya yönlendirilmesini sağlar.

Örneğin, bağlantı dizesi ikincil bir çoğaltmayı hedefleyebilir. Kullanılabilirlik grubu (AG) çoğaltmasının yapılandırmasına ve bağlantı dizesindeki ayarlara bağlı olarak, bağlantı otomatik olarak birincil çoğaltmaya yeniden yönlendirilebilir.


Bu yeni özelliğin burada nasıl alakalı olduğunu görebildiğimden emin değilim. OP'nin senaryosu, bu özelliğin amaçlanan senaryosundan farklı görünmektedir. OP, salt okunur bağlantıları ikincil (salt okunur) bir düğüme yeniden yönlendirmek isterken, bu yeni özelliğin belgeleri, okuma / yazma bağlantılarını birincil düğüme yeniden yönlendirmek için olduğunu söylüyor. Söz konusu sorunu çözmek için yeni işlevselliğin nasıl kullanılabileceğini ayrıntılı olarak açıklayabilir misiniz?
Andriy M
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.