Dinamik Port ne zaman “dinamik”?


23

Bugün Dynamic Portsiş arkadaşlarımdan biriyle ilgili bir tartışma yapıyordum ve nasıl çalıştıklarını açıklamak için biraz yardım kullanabilirim.

İlk soru: Eğer IPALL TCP Dynmaic Portsayar belirli bir sayı ise (1971 diyelim) bu, 1971 statik bir bağlantı noktasına veya şu anda 1971 olan dinamik bir bağlantı noktasına sahip olduğunuzu ve gelecekte bir noktada değişebileceğini gösterir.

görüntü tanımını buraya girin

İkinci soru: En çok merak ettiğim şey bu. IPALL TCP Dynmaic PortsDüzinelerce yeniden başlatmaya birkaç yıl boyunca aynı limana (ayardaki değer ) sahip bir örneğimiz var. Bir örneği yeniden başlattıktan sonra dinamik bağlantı noktasının gerçekten değişmesine neden olan nedir?

Yanıtlar:


22

Bu KB makalesi: SQL Server'ı belirli bir portta dinleyecek şekilde yapılandırma , sizin için olayları netleştirir:

Dinamik Port Tahsisi

SQL Server örneğini dinamik bağlantı noktası ayırma kullanacak şekilde yapılandırırsanız ve SQL Server örneğini henüz yeniden başlatmamışsanız, kayıt defteri değerleri aşağıdaki gibi ayarlanır:

TCPDynamicPorts = Boş

TCPPort = 0

Ancak, dinamik bağlantı noktası ayırma kullanacak bir SQL Server örneği yapılandırırsanız ve SQL Server örneğini yeniden başlatırsanız, kayıt defteri değerleri aşağıdaki gibi ayarlanır:

TCPDynamicPorts = Kullanılan akım portu

TCPPort = Kullanılan geçerli port

Statik Liman Tahsisi:

Bir SQL Server örneğini statik bir bağlantı noktası kullanacak şekilde yapılandırırsanız ve SQL Server örneğini henüz yeniden başlatmadıysanız, kayıt defteri değerleri aşağıdaki gibi ayarlanır:

TCPDynamicPorts = Kullanılan son bağlantı noktası

TCPPort = Bir sonraki yeniden başlatmadan sonra kullanılacak yeni statik port; Sunucu Ağ Yardımcı Programını kullanarak belirlediğiniz yeni statik bağlantı noktası

Ancak, statik bir bağlantı noktası kullanacak bir SQL Server örneği yapılandırırsanız ve SQL Server örneğini yeniden başlatırsanız, kayıt defteri değerleri aşağıdaki gibi ayarlanır:

TCPDynamicPorts = Boş

TCPPort = Sunucu Ağ Yardımcı Programını kullanarak belirlediğiniz yeni statik bağlantı noktası

ikinci sorunuz için -

Adlandırılmış SQLServer'ı her başlatışınızda, ayrılan bağlantı noktasını kullanır. Liman başka bir program tarafından kullanılıyorsa durumunda , o zaman SQL Server dinamik bağlantı noktası ilk açılışta seçilir yeniden başlatma yani anında başka bir bağlantı noktası seçer ve olacaktır genellikle aynı kalır (Kayıt saklanan) gelecek yeniden aracılığıyla - ama eğer başka bir program tarafından kullanıldığında, SQL server yeni bir port seçecektir. not: Prod Sunucular için sadece statik portlar kullanıyorum - güvenlik ve yönetilebilirlik sebepleri

Not: Daha fazla şey bulmak için soğur:

Dinamik bağlantı noktasının kullanılıp kullanılmadığını kontrol edin T-SQL:

SELECT NAME
    ,protocol_desc
    ,type_desc
    ,state_desc
    ,is_admin_endpoint
    ,port
    ,is_dynamic_port
    ,ip_address
FROM sys.tcp_endpoints

görüntü tanımını buraya girin

netstat -anoCmdline kullanarak kontrol etmek için kullanabilirsiniz .

Ayrıca, istemci tarafında kayıt defterinde daha önce nelerin önbelleğe alındığını, sql sunucusuna bağlanmak için hangi bağlantı noktasının kullanıldığını kontrol edebilirsiniz:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect

görüntü tanımını buraya girin


Teşekkürler ve bu çok faydalı bir bağlantı! Dinamik bir bağlantı noktasının bağlantı noktalarını değiştirmesine neyin neden olduğunu biliyor musunuz? Second questionYukarıdaki soruma bakın .
Kenneth Fisher

Sizin için @KennethFisher second question- Adlandırılmış SQLServer'ı her başlatışınızda, ayrılan bağlantı noktasını kullanır. Bağlantı noktasının başka bir program tarafından kullanılması durumunda, SQL Server yeniden başlatma sırasında başka bir bağlantı noktası seçer. Dinamik bağlantı noktası ilk başlangıçta seçilir ve gelecekteki yeniden başlatmalarda (Kayıt Defteri'nde saklanır) genellikle aynı kalır - ancak başka bir program tarafından kullanılıyorsa, SQL sunucusu yeni bir bağlantı noktası seçer. not : Prod Sunucular için sadece statik portlar kullanıyorum - güvenlik ve yönetilebilirlik sebepleri.
Kin Shah,

Sizce neden statik portta çalışan tamamen yeni bir servis (SQL server browser) uygulamasının değerinde olduğunu açıklar mısın? Başka bazı servislerin portları kullandığı bir durum, muhtemelen kullandığınız en pahalı yazılıma bağlanmak için fazla beceriksizsiniz?
kakaz
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.