Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede SQL Server için Always On kullanılabilirlik grubu dinleyicisine nasıl bağlanabileceğiniz öğretildi. Kullanılabilirlik grubu dinleyicisi, istemcilerin bir kullanılabilirlik grubunda barındırılan veritabanına bağlanmak için kullandığı bir sanal ağ adıdır. Dinleyici, birincil veritabanını şu anda hangi kullanılabilirlik replikasının barındırdığı fark etmeksizin istemci uygulamaları için tutarlı bir bağlantı uç noktası sağlar. Dinleyici, salt okunur modda yönlendirme ve otomatik yük devretme desteği de sağlar.
Dinleyicinizi yapılandırdıktan sonra, her yük devretme işleminden sonra bağlantı dizesini el ile güncelleştirmek zorunda kalmadan uygulama trafiğinin hedeflenen çoğaltmaya otomatik olarak yönlendirebilmesi için bağlantı dizelerinizi dinleyiciyi işaret eden şekilde güncelleştirin.
Birincil çoğaltmaya bağlanma
Okuma-yazma erişimi için birincil replikaya bağlanmak üzere bağlantı dizesinde erişilebilirlik grubu dinleyici DNS adını belirtin.
Örneğin, DINLEYICI aracılığıyla SQL Server Management Studio'daki birincil çoğaltmaya bağlanmak için sunucu adı alanına dinleyici DNS adını girin:
Yük devretme sırasında, birincil çoğaltma değiştiğinde dinleyiciyle var olan bağlantıların bağlantısı kesilir ve yeni bağlantılar yeni birincil çoğaltmaya yönlendirilir.
ADO.NET sağlayıcısı (Microsoft.Data.SqlClient veya System.Data.SqlClient) için temel bağlantı dizesi örneği:
Server=tcp: AGListener,1433;Database=MyDB;Integrated Security=SSPI
Uyarı
Microsoft.Data.SqlClient , yeni uygulama geliştirme için önerilen ADO.NET veri sağlayıcısıdır.
System.Data.SqlClient ile aynı bağlantı dizesi anahtar sözcüklerini destekler. Daha fazla bilgi için bkz. Microsoft.Data.SqlClient ad alanına giriş.
Aşağıdaki Transact-SQL (T-SQL) komutunu çalıştırarak dinleyici aracılığıyla şu anda hangi çoğaltmaya bağlı olduğunuzu doğrulayabilirsiniz:
SELECT @@SERVERNAME
Örneğin, SQLVM1 birincil çoğaltma olduğunda:
Kullanılabilirlik grubu dinleyicisini kullanmak yerine birincil veya ikincil çoğaltmanın örnek adını kullanarak SQL Server örneğine doğrudan bağlanmaya devam edebilirsiniz. Ancak, yeni bağlantıların yeni geçerli birincil replikaya otomatik olarak yönlendirilmesi avantajını kaybedersiniz. Ayrıca, read-intent ile belirtilen bağlantıların otomatik olarak yönlendirildiği okunabilir ikincil çoğaltmaya yönelik salt okunur yönlendirme avantajını da kaybedersiniz.
Salt okunur replikaya bağlan
Salt okunur yönlendirme, gelen dinleyici bağlantılarını salt okunur iş yüklerine izin verecek şekilde yapılandırılmış okunabilir bir ikincil çoğaltmaya otomatik olarak yönlendirmeyi ifade eder.
Bağlantılar, aşağıdaki koşullar sağlanıyorsa otomatik olarak salt okunur kopyaya yönlendirilir:
En az bir ikincil çoğaltma salt okunur erişim olarak ayarlanır ve her salt okunur ikincil çoğaltma ve birincil çoğaltma salt okunur yönlendirmeyi destekleyecek şekilde yapılandırılır.
Bağlantı dizesi Kullanılabilirlik Grubu'nda yer alan bir veritabanına başvurur. Buna alternatif olarak, bağlantıda kullanılan girişin varsayılan veritabanı olarak yapılandırılmış bir veritabanına sahip olmasıdır. Daha fazla bilgi için algoritmanın salt okunur yönlendirme ile nasıl çalıştığına ilişkin bu makaleye bakın.
Bağlantı dizesi bir kullanılabilirlik grubu dinleyicisine başvurur ve gelen bağlantının uygulama amacı salt okunur olarak ayarlanır (örneğin, ODBC veya OLEDB bağlantı dizelerinde Application Intent=ReadOnly anahtar sözcüğü ya da bağlantı öznitelikleri ya da özellikleri kullanılarak).
Uygulama amacı özniteliği, oturum açma sırasında istemcinin oturumunda depolanır. SQL Server örneği amacı işler ve kullanılabilirlik grubunun yapılandırmasına ve ikincil çoğaltmadaki hedef veritabanının geçerli okuma-yazma durumuna göre ne yapacağını belirler.
Örneğin, SQL Server Management Studio kullanarak salt okunur bir çoğaltmaya bağlanmak için Sunucuya Bağlan iletişim kutusunda Seçenekler'i seçin, Ek Bağlantı Parametreleri sekmesini seçin ve metin kutusunda şunu belirtinApplicationIntent=ReadOnly:
ADO.NET sağlayıcısı (Microsoft.Data.SqlClient veya System.Data.SqlClient) için salt okunur uygulama amacını belirten bir bağlantı dizesi örneği:
Server=tcp:AGListener;Database=AdventureWorks;Integrated Security=SSPI;ApplicationIntent=ReadOnly
Daha fazla bilgi için bkz. Bir Kullanılabilirlik Replikası üzerinde Salt Okunur Erişimi Ayarlama (SQL Server)
Varsayılan olmayan bağlantı noktası
Dinleyicinizi oluştururken, dinleyicinin kullanması için bir bağlantı noktası belirleyin. Bağlantı noktası varsayılan 1433 bağlantı noktasıysa dinleyicinize bağlanırken bağlantı noktası numarası belirtmeniz gerekmez. Ancak, bağlantı noktası 1433 değilse bağlantı dizesinde bağlantı noktası şu biçimde listenername,port belirtilmelidir:
ADO.NET sağlayıcısı (Microsoft.Data.SqlClient veya System.Data.SqlClient) için varsayılan olmayan bir bağlantı noktası belirten bir dinleyici bağlantı dizesi örneği:
Server=tcp:AGListener,1445;Database=AdventureWorks;Integrated Security=SSPI
Dinleyicileri atlama
Kullanılabilirlik grubu dinleyicileri, yük devretme, yeniden yönlendirme ve salt okunur yönlendirme desteği sağlarken, istemci bağlantılarının bunları kullanması zorunlu değildir. İstemci bağlantısı, kullanılabilirlik grubu dinleyicisine bağlanmak yerine doğrudan SQL Server örneğine de başvurabilir.
SQL Server örneğinde, bir bağlantının kullanılabilirlik grubu dinleyicisini kullanarak mı yoksa başka bir örnek uç noktası kullanarak mı oturum açtığı önemli değildir. SQL Server örneği, hedeflenen veritabanının durumunu doğrular ve kullanılabilirlik grubunun yapılandırmasına ve örnekteki veritabanının geçerli durumuna bağlı olarak bağlantıya izin verir veya izin verir. Örneğin, bir istemci uygulaması doğrudan SQL Server bağlantı noktasının bir örneğine bağlanıyorsa ve kullanılabilirlik grubunda barındırılan hedef veritabanına bağlanıyorsa ve hedef veritabanı birincil durumda ve çevrimiçi durumdaysa, bağlantı başarılı olur. Hedef veritabanı çevrimdışıysa veya geçiş durumundaysa, veritabanına bağlantı başarısız olur.
Alternatif olarak, veritabanı yansıtmasından Always On Erişilebilirlik Gruplarına geçiş yapılırken, yalnızca bir ikincil kopya olduğu ve bu da kullanıcı bağlantılarına izin vermediği sürece uygulamalar veritabanı yansıtma bağlantı dizesini belirtebilir.
Veritabanı yansıtma bağlantı dizeleri
Bir kullanılabilirlik grubu yalnızca bir ikincil çoğaltmaya sahipse ve ikincil çoğaltma için ALLOW_CONNECTIONS = READ_ONLY veya ALLOW_CONNECTIONS = NONE ile yapılandırılmışsa, istemciler veritabanı yansıtma bağlantı dizesini kullanarak birincil çoğaltmaya bağlanabilir. Kullanılabilirlik grubunu iki kullanılabilirlik çoğaltması (birincil çoğaltma ve bir ikincil çoğaltma) ile sınırlandırdığınız sürece, bu yaklaşım mevcut bir uygulamayı veritabanı yansıtmasından bir kullanılabilirlik grubuna geçirirken yararlı olabilir. Başka ikincil çoğaltmalar eklerseniz, kullanılabilirlik grubu için bir kullanılabilirlik grubu dinleyicisi oluşturmanız ve uygulamalarınızı kullanılabilirlik grubu dinleyici dns adını kullanacak şekilde güncelleştirmeniz gerekir.
Veritabanı yansıtma bağlantı dizelerini kullanırken, istemci SQL Server Yerel İstemcisi'ni veya SQL Server için .NET Framework Veri Sağlayıcısı'nı kullanabilir. İstemci tarafından sağlanan bağlantı dizesi, başlangıçta bağlanmak istediğiniz kullanılabilirlik çoğaltmasını barındıran sunucu örneğini tanımlamak için en az bir sunucu örneğinin adını (ilk iş ortağı adı) belirtmelidir. İsteğe bağlı olarak, bağlantı dizesi devretme iş ortağı adı olarak başlangıçta ikincil replikayı barındıran sunucu örneğini tanımlamak için başka bir sunucu örneğinin adını da sağlayabilir.
Veritabanı yansıtma bağlantı dizeleri hakkında daha fazla bilgi için bkz. İstemcileri Veritabanı Yansıtma Oturumuna (SQL Server) Bağlama.
Çok alt ağ yük devretmeleri
Bağlantı dizesinde MultiSubnetFailover bağlantı seçeneğini destekleyen istemci kitaplıkları kullanıyorsanız, kullanmakta olduğunuz sağlayıcının söz dizimine bağlı olarak MultiSubnetFailover'ı "True" veya "Yes" olarak ayarlayarak farklı bir alt ağa kullanılabilirlik grubu yük devretmesini iyileştirebilirsiniz.
Uyarı
Kullanılabilirlik grupları dinleyicilerine ve SQL Server Yük Devretme Kümesi Örneği adlarına yönelik tek ve çok alt ağlı bağlantılar için bu ayarı öneririz. Bu seçeneğin etkinleştirilmesi, tek alt ağ senaryoları için bile ek iyileştirmeler ekler.
MultiSubnetFailover bağlantı seçeneği yalnızca TCP ağ protokolüyle çalışır ve yalnızca bir kullanılabilirlik grubu dinleyicisine bağlanırken ve SQL Server'a bağlanan herhangi bir sanal ağ adı için desteklenir.
Çok alt ağ yük devretmeyi etkinleştiren ADO.NET sağlayıcısı (Microsoft.Data.SqlClient veya System.Data.SqlClient) bağlantı dizesine bir örnek aşağıdaki gibidir:
Server=tcp:AGListener,1433;Database=AdventureWorks;Integrated Security=SSPI; MultiSubnetFailover=True
Kullanılabilirlik grubu yalnızca tek bir alt ağa yayılmış olsa bile MultiSubnetFailover bağlantı seçeneği True olarak ayarlanmalıdır. Bu seçenek, gelecekteki istemci bağlantı dizesi değişikliklerine gerek kalmadan alt ağların gelecekte yayılmasını desteklemek için yeni istemcileri önceden yapılandırmanıza olanak tanır ve ayrıca tek alt ağ yük devretmeleri için yük devretme performansını iyileştirir. MultiSubnetFailover bağlantı seçeneği gerekli olmasa da, daha hızlı bir alt ağ yük devretme avantajı sağlar. İstemci sürücüsü, kullanılabilirlik grubuyla ilişkili her IP adresi için paralel olarak bir TCP yuvası açmayı dener. İstemci sürücüsü, ilk IP'nin başarılı bir şekilde yanıt vermesini bekler ve yanıt verdiğinde bağlantı için kullanır.
Dinleyiciler ve TLS/SSL sertifikaları
Bir kullanılabilirlik grubu dinleyicisine bağlanırken, SQL Server'ın katılımcı örnekleri oturum şifrelemesiyle birlikte TLS/SSL sertifikaları kullanıyorsa, şifrelemeyi zorlamak için bağlanan istemci sürücüsünün TLS/SSL sertifikasındaki Konu Alternatif Adını desteklemesi gerekir.
Hata toleranslı kümedeki her katılımcı sunucu düğümü için, sertifikanın Alternatif Konu Adı'nda belirtilen tüm kullanılabilirlik grubu dinleyicilerinin listesiyle bir X.509 sertifikası yapılandırılmalıdır.
Sertifika değerlerinin biçimi:
CN = Server.FQDN
SAN = Server.FQDN,Listener1.FQDN,Listener2.FQDN
Örneğin, aşağıdaki değerlere sahipsiniz:
Servername: Win2019
Instance: SQL2019
AG: AG2019
Listener: Listener2019
Domain: contoso.com (which is also the FQDN)
Tek bir kullanılabilirlik grubuna sahip bir WSFC için sertifika, sunucunun tam etki alanı adına (FQDN) ve dinleyicinin FQDN'sine sahip olmalıdır:
CN: Win2019.contoso.com
SAN: Win2019.contoso.com, Listener2019.contoso.com
Bu yapılandırmayla, örneğe () veya dinleyiciye (WIN2019\SQL2019Listener2019 ) bağlanırken bağlantınız şifrelenir.
Ağın nasıl yapılandırıldığına bağlı olarak, san'a NetBIOS'un da eklenmesi gerekebilecek küçük bir müşteri alt kümesi vardır. Bu durumda, sertifika değerleri şu şekilde olmalıdır:
CN: Win2019.contoso.com
SAN: Win2019,Win2019.contoso.com,Listener2019,Listener2019.contoso.com
WSFC'de üç kullanılabilirlik grubu dinleyicisi varsa, örneğin: Dinleyici1, Dinleyici2, Dinleyici3
Ardından sertifika değerleri şu şekilde olmalıdır:
CN: Win2019.contoso.com
SAN: Win2019.contoso.com,Listener1.contoso.com,Listener2.contoso.com,Listener3.contoso.com
Dinleyiciler ve Kerberos (SPN)
Bir etki alanı yöneticisinin, dinleyiciye istemci bağlantıları için Kerberos'un etkinleştirilmesi için her kullanılabilirlik grubu dinleyicisi için Active Directory'de bir Hizmet Asıl Adı (SPN) yapılandırması gerekir. SPN'yi kaydederken, kullanılabilirlik çoğaltmasını barındıran sunucu örneğinin hizmet hesabını kullanmanız gerekir. SPN'nin tüm çoğaltmalarda çalışması için, kullanılabilirlik grubunu barındıran WSFC kümesindeki tüm örnekler için aynı hizmet hesabının kullanılması gerekir.
SPN'yi yapılandırmak için setspn Windows komut satırı aracını kullanın. Örneğin, etki alanı hesabı corp\svclogin2 altında çalışacak şekilde yapılandırılmış bir dizi SQL Server örneğinde barındırılan AG1listener.Adventure-Works.com adlı bir kullanılabilirlik grubu dinleyicisi için SPN yapılandırmak:
setspn -A MSSQLSvc/AG1listener.Adventure-Works.com:1433 corp\svclogin2
SQL Server için bir SPN'nin el ile kaydedilmesi hakkında daha fazla bilgi için bkz. Kerberos Bağlantıları için Hizmet Asıl Adı Kaydetme.