Çok alt ağlı ortamda AlwaysOn dinleyicisine bağlandığınızda zaman aşımı oluşur
Bu makale, çok alt ağlı bir ortamda SQL Server AlwaysOn kullanılabilirlik grubu dinleyicisine bağlandığınızda oluşan sorunu çözmenize yardımcı olur.
Orijinal ürün sürümü: SQL Server 2012 Developer, SQL Server 2012 Enterprise, SQL Server 2012 Express, SQL Server 2012 Standard, SQL Server 2012 Web, SQL Server 2012 Enterprise Core
Özgün KB numarası: 2792139
Belirtiler
Microsoft SQL Server 2012'de bir AlwaysOn Kullanılabilirlik Grubu için kullanılabilirlik grubu dinleyicisini yapılandırdıktan sonra, dinleyiciye ping atamayabilir veya bir uygulamadan bu gruba bağlanamayabilirsiniz.
Örneğin, kullanarak SQLCMD
bir SQL Server dinleyicisine bağlanmaya çalıştığınızda bağlantı zaman aşımına uğrıyor. Ayrıca, aşağıdakine benzer bir hata iletisi alırsınız:
Sqlcmd: Hata: Microsoft SQL Yerel İstemcisi: Oturum açma zaman aşımı süresi doldu.
Not
Bu belirtiler genellikle aralıklı olarak veya kullanılabilirlik grubu kaynağının yük devretmesi ile ilgilidir.
Aşağıdaki ekran görüntüsünde, dinleyiciye kullanılabilirliği için ping göndermeye çalıştığınızda gerçekleşen işlemlerin bir örneği gösterilmektedir aglisten
. Ekran görüntüsü, çok alt ağ yük devretme parametresini -M
eklediğinizde komutunu kullanarak SQLCMD
SQL Server başarılı bir bağlantı da gösterir.
Not
Dinleyiciye SQLCMD
bağlanmak için komutunu ekran görüntüsünde gösterildiği gibi parametresiyle -M
birlikte kullanabilirsiniz.
Neden
Bu sorun, uygulamanız yeni MultiSubnetFailover
parametreyi desteklemeyen eski bir veri sağlayıcısı kullandığından veya bu parametreyi kullanacak şekilde yapılandırılmadığından oluşur.
Bu parametre, .NET Framework 4 ve .NET Framework sonraki sürümleriyle birlikte gelen ve .NET Framework 3.5'e geri taşınabilir sqlClient sürücüsünün daha yeni sürümlerinde desteklenir.
Not
PING
komutu, yeni parametreyi desteklemeyen basit bir bağlantı testi aracıdır.
Çözüm
Aşağıdaki çözümlerden birini, durumunuz için geçerli olduğu şekilde kullanabilirsiniz:
Veri sağlayıcıları parametreyi desteklediğinde
MultiSubNetFailover
bu durumu çözmek için parametresiniMultiSubNetFailover
bağlantı dizesi ekleyin ve true olarak ayarlayın.Eski istemcileriniz özelliğini kullanamadığında
MultiSubnetFailover
bu durumu çözmek için dinleyicininRegisterAllProvidersIP
değerini 0 olarak değiştirebilirsiniz. Bunu yapmak için, Windows PowerShell komut satırı arabiriminden aşağıdaki komutu çalıştırın:Import-Module FailoverClusters Get-ClusterResource <*Your listener name*>|Set-ClusterParameter RegisterAllProvidersIP 0
Not
Değeri 0 olarak ayarladıktan RegisterAllProvidersIP
sonra, geçerli çevrimiçi IP adresinin DNS sunucusundan kaydedilmemiş olması ve yük devretme gerçekleştiğinde çevrimdışı IP adresinin DNS sunucusuna kaydedilmesi gerekir. Bu, bir sonraki yük devretme için bağlantı gecikmesine neden olabilir.
Daha fazla bilgi
Birden fazla alt ağda tanımlanan bir dinleyiciye bağlanmaya çalıştığınızda, istemci sürücüsü dinleyicinin çevrimdışı IP adreslerinden birini kullanarak bağlanmaya çalışırsa işlem başarısız olabilir.
Bir dinleyici oluşturulduğunda, bir kullanılabilirlik grubu çoğaltması barındırılan her benzersiz alt ağ için bir IP adresi atanır. Örneğin, iki alt ağda bulunan çoğaltmaları olan bir kullanılabilirlik grubu için dinleyici oluşturulursa, dinleyicide iki IP adresi tanımlanır. Bir adres, alt ağ 1'deki bir SQL Server örneğine bağlanabilen bir uygulama tarafından, diğer adres ise bir uygulama alt ağ 2'deki bir SQL Server örneğine bağlandığında kullanılır.
Dinleyici arka planda bir Windows kümesi İstemci Erişim Noktası kaynağı oluşturur. Özelliklerinden biri şeklindedir RegisterAllProvidersIP
. Bir dinleyici oluşturulduğunda, bu değer 1 olarak ayarlanır ve tüm dinleyicinin IP adresleri DNS sunucusuna kaydedilir. Bu yapılandırma, istemciler için daha az yeniden bağlantı süresi sağlar.
DNS kaydı tüm IP adreslerini içerdiğinden, dinleyiciye bağlanmaya çalışan bir istemcinin bu durumu nasıl ele alacağını bilmesi gerekir.
MultiSubnetFailover
parametresi, istemci sürücüsünün bağlantıları tüm dinleyicinin IP adreslerine paralel olarak denemesini sağlar.
MultiSubnetFailover
parametresi olmadan, istemci sürücüsü dinleyicinin tüm IP adreslerine sırayla bağlanmayı dener. Sıralı bağlantılar uzun bir oturum açma süresine veya oturum açma zaman aşımlarına neden olabilir.
Not
Bu makalede bahsedilen sorun, Her Zaman Açık Kullanılabilirlik Grubunun ikincil salt okunur çoğaltmasını kullanacak şekilde yapılandırılmış SharePoint ortamlarını da etkiler. Bu sorunu çözmek için, SharePoint sürümünüz için aşağıdaki eylemlerden hangisi geçerliyse onu gerçekleştirin:
SharePoint 2007 için: Bu, eski bir uygulama olarak sınıflandırılır. Bu nedenle, SharePoint 2007 parametresini
MultiSubnetFailover
kullanacak şekilde yapılandırılamaz. Bunun yerine, Çözüm bölümünde açıklanan Windows PowerShell komutunu kullanmanız gerekir.SharePoint 2010 için: Parametresi için
MultiSubnetFailover
destek ekleyen toplu güncelleştirme paketleri kullanıma sunuldu. Güncelleştirme paketleri hakkında daha fazla bilgi için aşağıdaki makaleye bakın: