Ç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 SQLCMDbir 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 -Meklediğinizde komutunu kullanarak SQLCMD SQL Server başarılı bir bağlantı da gösterir.

Dinleyiciye aglisten kullanılabilirliği için ping gönderdiğinizde Komut İstemi penceresinin ekran görüntüsü.

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 parametresini MultiSubNetFailover bağlantı dizesi ekleyin ve true olarak ayarlayın.

  • Eski istemcileriniz özelliğini kullanamadığında MultiSubnetFailover bu durumu çözmek için dinleyicinin RegisterAllProvidersIP 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
    

    Windows PowerShell'daki komutun bir örneğinin çıkışını gösteren ekran görüntüsü.

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:

Başvurular