ReadOnly Uygulama Amaçlı SSMS Kayıtlı Sunucular


10

AlwaysOn ile SQL Server 2014 POC testi üzerinde çalışıyoruz ve kullanıcılardan biri Yerel sunucu grubundaki kayıtlı sunucuları kullanarak SSMS yapılandırmasını ReadOnly Intent ile kaydetme hakkında sorular sordu . Bu şekilde, ReadOnly çoğaltmasına her erişmeleri gerektiğinde diğer ad yazmaları gerekmez .

Ne yazık ki, kayıtlı sunucular içinde normal nesne gezgininden farklı olarak ApplicationIntent Seçeneğini ekleme seçeneği yoktur.

Microsoft bu makalede RegSrvr.xml bağlantı dizesini değiştirme hakkında geldi.

https://connect.microsoft.com/SQLServer/feedback/details/786323/ssms-sql-server-management-studio-2012-missing-connection-properties-for-availability-groups

Onların önerilerini denedim ve kayıtlı sunuculardaki yerel sunucu üzerinden bağlanırken doğru çoğaltma düğümüne bağlanmadı.

SaltOkunur bağlantı penceresinde seçenekler> Ek bağlantı parametreleri kullanılırken seçenek nesne explorer cezası çalışır. Ancak bağlantıda yapılan değişiklikleri kaydetmez.

SSMS ile yapılandırmaları ReadOnly Intent özelliği ile kaydetmek için alternatif çözümler bilen var mı ? Yardımın için şimdiden teşekkür ederim.

Yanıtlar:


3

SQL Management Studio (2016 öncesi sürümler)

Ne yazık ki, SQL Management Studio'da Application Intent'i kullanmayı biraz acı veren bazı uyarılar var:

ReadOnly niyetiyle manuel olarak bağlanmak için , Nesne Gezgini'nden Sunucuya Bağlan iletişim kutusunu açtıktan sonra kullanıcıların şunları hatırlaması gerekir:

  1. Seçenekler >> 'i tıklayın .
  2. Git Ek bağlantı parametreleri sekmesi.
  3. Ek parametreyi ApplicationIntent = ReadOnly olarak girin;
  4. (Not: Kullanıcılar , Ek Bağlantı Parametreleri girdikten sonra Seçenekler << düğmesini tıklamamalıdır, aksi takdirde parametreler kaybolur.)
  5. Bağlan'a tıklayın .
  6. Her zaman istenen veritabanı üzerinde sağ tıklayarak sorgu pencereleri başlatacak Nesne Explorer görünümü ve seçme Yeni sorgu altında 3. ikaz çalışan önlemek için.

Uygulanan uyarılar aşağıdaki gibidir:

  1. SQL Management Studio'nun Salt Okunur Amaç ile bağlanmasını sağlayabilirsiniz, ancak Kayıtlı Sunuculara bir bağlantı eklendiğinde Ek Bağlantı Parametrelerini depolamaz.
  2. Uygulama Niyeti eklemek için RegSrvr.xml dosyasındaki yerel olarak kayıtlı sunucuları el ile düzenleme davranışı son derece tutarsızdır ve GUI aracılığıyla her değişiklik yapıldığında bu geçici çözümü güvenilmez hale getirir.
  3. Sorgu penceresi açılmadan önce Her Zaman Açık veritabanı seçilmelidir; aksi takdirde bağlantı birincil sunucuya yönlendirilir. Sorgu penceresi Sürekli Açık olmayan bir veritabanına açıldıktan sonra, sorgu penceresinin açılır menüsünü kullanarak veritabanını seçmeye çalışırsanız, bir hata iletişim kutusu alırsınız. Sorgu penceresi bir Her Zaman Açık olmayan bir veritabanına açıldıktan sonra veritabanını bir USE deyimiyle Her Zaman Açık veritabanına değiştirmeye çalışırsanız, SQL sorgusunu yürütmeye çalıştığınızda sonuçlar şöyle görünür:
      Msg 979, Level 14, State 1, Line 1
      The target database ('AlwaysOnDatabase') is in an availability group 
      and currently does not allow read only connections. For more 
      information about application intent, see SQL Server Books Online.

SQL Management Studio (sürüm 2016 veya üstü)

SQL Server Management Studio 2016 veya üstü, Salt Okunur Uygulama Niyeti ile bağlanabilir (önceki sürümlerle aynı 6 adımı kullanarak) ve Ek Bağlantı Parametrelerini depolar. Hala bazı uyarılar var:

  1. Nesne Gezgini görünümü, AlwaysOn veritabanlarındaki tabloları veya diğer nesneleri numaralandırmaz. Bunları genişletmeye çalışmak erişim reddedildi mesajıyla sonuçlanır.
  2. Aynı dinleyiciye Salt Okunur ve Salt Okunur olmayan bir bağlantınızı aynı anda açamazsınız.
  3. Veritabanındaki nesne adları için Intellisense çalışmaz. (Garip bir şekilde, Nesneler , Düzenleyici'de Tasarım Sorgusu'nu kullanarak başlatabileceğiniz Sorgu Tasarımcısı'nda iyi bir şekilde numaralandırılır ... )
  4. Önceki sürümlerin uyarıları hala geçerlidir.

Üçüncü Taraf Ürünleri

LinqPad , bir bağlantıyı kaydettiğinizde Application Intent ve veritabanı da dahil olmak üzere tüm bağlantı dizesini saklar ve bu nedenle Always On veritabanlarına karşı Salt Okunur sorguları gerçekleştirmek için uygun bir seçenek olabilir.


0

Bulmacanın önemli bir bölümünü kaçırıyor olabilirsiniz ya da en azından sorunuzun hiçbir yerinde görmedim:

ApplicationIntent=readonlydenkleminin yarısıdır. Parametreyi de geçmeniz gerekir MultiSubnetFailover=True.

Örneğin, Ek Bağlantı Parametreleri sekmesine aşağıdakileri girmek istersiniz:

MultiSubnetFailover=True;ApplicationIntent=readonly;

Teşekkürler Tony ama bu yaşadığım sorun değil.
DBAuser


0

Bir yapılandırma dosyası oluşturup ardından SSMS'de gerekli kayıtlı sunucuları otomatik olarak oluşturmanız mümkün mü? Tıpkı MSSQLTips makalemde belirtildiği gibi:

SQL Server Management Studio'da (SSMS) Sunucu Kaydetme ve Bakımını Otomatikleştirme


Merhaba jyao, Cevabınız için teşekkürler. Bu makalede ilgili bir powershell betiği gönderdiniz, ancak ne yazık ki ApplicationIntent özelliği ile çalışmıyor. PS'yi aşağıdakileri kullanacak şekilde değiştirdim: New-Item -Name $ (encode-sqlname $ g.value) -path "sqlserver: \ SQLRegistration \ $ ($ choice) \ $ ($ g.parentfolder)" -ItemType $ g .type -Value ("Sunucu = $ regsrv; tümleşik güvenlik = true; İlk Katalog = dbname; ApplicationIntent = ReadOnly"); Şanssız! Bu işe yararsa, bunu bir seçenek olarak kullanmaktan mutluluk duyarım. Tekrar teşekkürler.
DBAuser

0

Kayıtlı sunucularla kullanıldığında SQL 2016 SSMS'de bu düzeltildi. Yerel sunucular grubunun bir parçası olarak bir ReadOnly Intent bağlantısını kaydedebildim ve daha sonra kullanmak üzere kaydedilen bağlantıyı açabildim. Bu yardım için teşekkürler.


0

Yorum yapamıyorum ama DBAUser'ın cevabına ekliyorum.

Kayıtlı sunucular alanında bağlantı kurarken GUI'ye Uygulama Niyeti ekleme seçeneğini göremedim.

Ben ya kullanarak ( Data Source=<Listener>;Initial Catalog=<Database>;ApplicationIntent=ReadOnlysonra) nesne gezgini kullanarak bağlamak zorunda bağlandıktan sonra sunucuyu kaydetmek zorunda kaldı.

Veya Initial Catalog=<Database>;ApplicationIntent=ReadOnly.regsrvr dosyasındaki bağlantı dizesine ekleyin .


Bunu kayıtlı sunuculardaki yerel sunucu gruplarının bir parçası olarak görmek için readOnly sunucusunu nesne gezginine kaydetmeniz gerekir. Nesne gezgininde, applicationintent ile sunucuya bir readOnly bağlantısı oluşturduktan sonra, sunucuyu sağ tıklatın ve Kaydet'i tıklatın. Ardından kayıtlı Sunucu Adını istediğiniz adla değiştirin. Bu, kayıtlı sunuculardaki yerel sunucuların bir parçası olarak kaydedilecektir. Bu yardımcı olur umarım!
DBAuser
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.