|
|
|
"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 |
|