|
|
|
"SQL Server 2005: Baðlantý Protokolleri"
|
Son güncelleme tarihi: 02 Mayýs 2008
Merhaba arkadaþlar,
Bir SQL Server veritabaný motoruna baðlanabilmeniz
için, en az bir SQL Server protokolü kullanýlabilir durumda olmalýdýr. SQL Server'
da, ayný anda birden fazla protokol kullanýlabilir; ama istemciler SQL Server' a
tek bir protokolü kullanarak baðlanýrlar. Eðer istemcinin kullandýðý program, SQL
Server' ýn hangi protokolü dinlediðini bilmiyorsa, o zaman çözüm olarak istemcinin
sýrayla deðiþik protokolleri denemesini saðlayabilirsiniz. SQL Server protokollerini
kullanýlabilir ve kullanýlamaz yapmak için SQL Server Configuration Manager'
ý kullanabilirsiniz. Ayný zamanda SQL Server 2005' te, SQL Server Surface Area
Configuration aracýný da kullanabilirsiniz. SQL Server 2005' te 4 adet
protokol bulunmaktadýr.
Bunlar: Shared Memory, TCP\IP, Named Pipes
ve VIA protokolleridir. Size ilk önce bu protokollerden tek tek
bahsedeceðim, son olarak da Named Pipes ve TCP\IP protokollerinin hangi þartlarda
kullanýlabileceðine
dair genel bir öneride bulunacaðým.
Shared Memory
Bu protokol en sade ve herhangi bir ayarý olmayan protokoldür. Bu protokolü, istemcilerinizin
SQL Server' ýnýz ile baðlantý kurup bilgi alýþ-veriþi yaptýðý bir ortamda kullanamazsýnýz.
Daha ziyade, testler için veya diðer protokollerde sorun yaþadýðýnýzý düþündüðünüzde
ve SQL Server' ýnýza baðlanmanýz gerektiðinde kullanabilirsiniz. Varsayýlan olarak
tüm SQL Server sürümlerinde kullanýlabilir olarak gelen bir protokoldür.
Kullanýmý iptal edilmediði sürece, SQL Server' ýn üzerinde bulunduðunu sunucuya,
o sunucudayken baðlanmak istediðinizde sistemin ilk deneyeceði protokol Shared Memory
protokolüdür.
TCP\IP
TCP\IP, geniþ çaplý olarak kullanýlan bir protokoldür. Bu protokülü kullanarak,
birbirine baðlý aðlar arasý bilgisayarlar ile baðlantý kurmanýz mümkündür. Birçok
donaným tarafýndan desteklenen bir protokoldür. TCP\IP, að yönlendirme trafiði standartlarýný
ve geliþmiþ güvenlik özelliklerini içerir. Bugünün piyasasýnda en çok kullanýlan
ve kabul gören protokoldür. TCP\IP protokolü, SQL Server 2005' in Express ve Developer
Edition' ýnda varsayýlan olarak kullanýlamaz halde gelir. SQL Server 2005 Express
Edition veya Developer Edition kurup, istemcilerinden SQL Server sunucularýna baðlanmaya
çalýþýp baðlanamayan bir çok kullanýcý görüyorum her gün. Bu nedenle, bu yazýda
bu noktayý da belirtmek istedim. Her protokol, her SQL Server sürümünde varsayýlan
olarak kullanýlabilir veya kullanýlamaz deðildir. Her sürümde varsayýlan ayarlar
deðiþiyor.
Meselâ uygulamanýzdan SQL Server' ýnýza bu protokolü kullanarak baðlanmak istediðinizi
varsayalým.
Ýlk örneðimde bir varsayýlan SQL Server portunu kullanarak (ki varsayýlan
port 1433' tür) bir Default Instance' a baðlandýðýnýzý varsayacaðým ve bu örneðe uygun bir Baðlantý Cümlesi (Connection String) yazacaðým:
Örnek 1:
"Server = EKREM-PC; Database = Veritabanim; Integrated Security = Yes"
Eðer SQL Server Instance' ýnýz bir Named Instance ise ve farzedelim Instance adý
"Yonetim" ve port numarasý olarak da 10897 kullanýlýyorsa, o zaman aþaðýdaki Baðlantý
Cümlesi kullanýlabilir:
Örnek 2:
"Server = EKREM-PC\Yonetim, 10897; Database = Veritabanim; Integrated Security =
Yes"
"Server" adý olarak IP de kullanabilirdiniz. O zaman da port numarasýný virgül ile
ayýrarak yazmanýz gerekirdi. Port numarasýný kullanmak performans açýsýndan daha
yararlýdýr. Aksi takdirde standart port numarasý kullanýlmadýðý için, ilk önce Browser
Servisi ile haberleþilmesi gerekirdi. Çünkü dinamik port kullanan SQL Server Instance'
larýnýn port numralarýnýn alýnabilmesi için istemci ilk önce Browser Servisiyle
1434UDP portundan haberleþir ve haberleþmek istediði SQL Server Insatnce' ýnýn port
numarasýný alýr ve bu bilgiye göre baðlantý kurar.
Named Pipes
Named Pipes LAN (Local Area Network)' lar için geliþtirilmiþ bir protokoldür. Hafýzanýn
bir bölümü bir iþlem tarafýndan veriyi diðer iþleme aktarmak için kullanýlýr, bu
sayede bir
iþlemin çýktýsý, diðerinin girdisi olur. Ýkinci iþlem yerel (Ýlk olduðu
için ayný bilgisayarda) veya uzaktan (aðdaki bir bilgisayardan) olabilir.
Named Pipe protokolünü kullanarak SQL Server' ýnýza baðlanmak için aþaðýdaki Baðlantý
Cümlesini kullanabilirsiniz (Default Instance için varsayýlan deðerler gözönüne
alýnarak yazýyorum):
Örnek 1:
\\.\pipe\sql\query
"." deðeri, baðlantýnýn yerel bir baðlantý olduðunu gösteriyor. "pipe" deðeri, baðlantýnýn
bir Named Pipe baðlantýsý olduðunu, "sql\query" deðeri ise Pipe' ýn adýný gösteriyor.
Bir Named Instance için ise aþaðýdaki Named Pipe adresi kullanýlabilir:
Örnek 2:
\\<bilgisayar_adý>\pipe\MSSQL$<Instance_adý>\sql\query.
SQL Server, iletiþim için 445 numaralý portu kullanýr. Bu nedenle Windows Güvenlik
Duvarýnda bu portun izinli olmasýna dikkat edin.
VIA
VIA (Virtual Interface Adapter) protokolü VIA donanýmýyla birlikte çalýþýr. VIA
hakkýnda daha fazla bilgi için, size VIA donanýmýný satan firma ile baðlantý kurmalýsýnýz.
Pratik olarak Named Pipes mý yoksa TCP\IP
mi?
TCP\IP, LAN, WAN ya da Çevirmeli Að (Dial-up) gibi yavaþ
að baðlantýlarýnda tercih edilebilir, Named Pipes ise hýzýn sorun olmadýðý að baðlantýlarýnda
daha iyi bir iþlevsellik sunar, kullanýmý ve yapýlandýrmasý daha kolaydýr.
Hangisinin size daha uygun olduðunu anlamak için uygulanabilecek en iyi yöntem testtir.
Ýki protokolü de ortamýnýzda test etmenizi tavsiye ederim. Hangisinden daha çok
performans alýrsanýz, onu tercih edin.
Bir Protokolün Kullanýmý
Uygulamanýzýn kullanmasý için seçtiðiniz SQL Server protokolünün
çalýþabilmesi için, seçtiðiniz protokolün sunucu tarafýnda da, istemci tarafýnda
da kullanýlabilir ve etkin olmasý gerekmektedir. Sunucu ayný anda birden çok protokolü
dinleyebilir. Ýstemciler ise daha önceden de deðindiðim gibi sadece bir tane protokolden
sunucuya baðlanabilirler.
Ekrem Önsoy
Kaynak:
http://msdn.microsoft.com/en-us/library/ms187892.aspx
|
|
Anasayfa |
|