SQL Server Linked Server Kullanımı ve Dağıtık Sunuculara Erişim

Arkadaşlar merhaba;
Bu yazımızda elimizden geldiğince SQLde Linked Servers ve Dağıtık Sunuculara Erişim konusunu anlatmaya çalışacağız.

İsterseniz önce Distributed Systems olarak da anılan  Dağıtık Sunucu (Sistem) nedir? bunu özetlemekle başlayalım.

 Dağıtık Sistemler (Distributed Systems)


       En basit özet anlatımıyla, çeşitli iletişim protokolleriyle erişebildiğimiz, üzerin de veri barındıran farklı konumlara sahip veri kaynaklarıdır.

       Bu veri kaynakları aynı sunucu üzerinde farklı path larde bulunabileceği gibi farklı sunucular üzerinde hatta dünyanın farklı  ülkelerinde bile bulunabilirler. Üstelik bu kaynakların aynı türde de olmayabilirler. Verilerin bir kısmı SQL server üzerinde tutulurken bir bunu destekleyen başka bir veri başka bir sunucuda, Excel ya da Text dosya üzerinde olabilir. Zaman zaman bu verilere erişip bir araya getirerek aynı amaç doğrultusun da birleştirip anlamlı veriler ya da raporlar oluşturmamız beklenir.

İşte bu noktada Linked Servers devreye girer ve bize bu farklı yapılar arasında iletişim imkanı sunar.

Not: Dağıtık Sistemler aynı zaman da BigData konusuna da girer. BigData çok başka bir konudur karıştırılmalıdır Detayları için araştırmanızı tavsiye ederim.

Konuyu detaylı olarak açıklayan makale örnekleri de mevcut, biz anlaşılır bir dille özetlemeye çalıştık.


 Linked Servers

Linked Servers yöntemi temel olarak OLEDB veya ODBC protokolleriyle erişim sağlar.

Dilerseniz artık yavaş yavaş serverlar arası link kurarak verileri erişmeye başlayalım.

Linked Server oluşturmanın iki yolu vardır. 
Bunlarda birisi SQL Server Management arayüzünden sihirbazlarla oluşturmak,
diğeri ise SQL içerisinde mevcut olan  Stored Procedure kullanarak oluşturmak.


Object Explorer/Server Objects/Linked Servers/New Linked Server














Yolu izlediğiniz de Tanım ekranı çıkar.

































Resimde zaten alanların ne olduğu nasıl doldurulacağı belirtildi.
        Peki elimizi kolumuzu sallayarak servere erişemeyeceğimize göre Kullanıcı adı ve parolayı nereye gireceğiz.
Evet doğru!!!  Security sekmesinden Kullanıcı ve Parolanızı girmeniz gerekiyor.
Ayrıca diğer bazı ayarlar içinde Server Options sekmesine göz atmanızı tavsiye ederim. Ne oldukları açık oldukları için tek tek değinmiyorum.

Eğer bütün ayarlarımız tamam sa OK diyerek kaydediyoruz.

        Son olarak oluşturduğumuz Linked Server'in üzerinde sağ tuş "Test Connection" diyerek testini yapıyoruz ve işi bitiriyoruz.



C# Environment Sınıfı Kullanımı



Arkadaşlar merhaba bu yazımızda hayli işe yarayan Environment Class ını inceleyeceğiz.

Bu sınıf adında anlaşıldığı gibi Environment Variables yani Ortam Değişkenleri adı verilen bilgilere ulaşmanın en kısa yoludur.
Peki ortam değişkenleri denildiğinde ne anlamalıyız.
Bunlar resimde de gördüğünüz yazılımlara sistem path leri ve parametreleri hakkında bilgi veren, işletim sisteminin neyi nerede barındıracağı bilgisini tutan değişkenlerdir. Örnek olarak TEMP klösörü, Desktop vs... nerede gibi daha bir çok bilgi içerir.
Burada değişken denilmesinde ki sebep gerçekten değiştirilebilir yani eklenebilir silinebilir ve değiştirebilir olmasıdır. Özel sebeplerden dolayı sistem yönetici bu değişikliğe gidebilir.
Bu ekrana da Win8 için Bilgisayarım/Özellikler/Gelişmiş sistem ayarları/Ortam değişkenleri yolunu izleyerek ulaşabilirsiniz.



















İsterseniz şimdi makalenin konusu olan .Net (C#) içerisinden bu bilgileri nasıl ulaşabiliriz ona bakalım.

İşimiz çok kolay System namespace altında bulunan Environment Sınıfını işe dahil etmek yeterli.
Bu sınıf static olduğu için herhangi bir instance almaya gerek yok direk kullanabiliriz.
Peki bize hangi bilgileri veriyor açıklayarak sıralayalım.

  Environment.CommandLine; //Uygulanın çalıştırıldıgı komutsatırı
  Environment.TickCount//Sistem başladığından beri geçen milisaniye sayısı
  Environment.StackTrace//Uygulama çalıştırıldıgında oluşan StackTrace dediğimiz bilgileri verir. Bu bilgiler aynı zaman da visual studia ekrana yansıyan hatalarda ki StackTrace bilgisidir.
   Environment.SystemDirectory; //Sistem dizinin tam yolunu (C:\Windows\system32) verir.
   Environment.UserDomainName//Kullanıcı Domain Adı.  
   Environment.Version//CLR versiyon numarası
   Environment.OSVersion.VersionString; //İşletim sistemi 
   Environment.UserName//Kullanıcı adı
   Environment.MachineName; //PC adı
   Environment.CurrentDirectory; //Uygunlamamnın çalıştıgı aktif klasör yolu
   Environment.ProcessorCount//Çekirdek sayısı

Environment.SpecialFolder Enum unu kullanarak bir çok özel klasöre erişebilirsiniz.
Ben hepsini tek tek sıralama gereği duymadım ne oldukları zaten açık.
Örnek olarak ;
Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //Masaüstü yolunu verir.

Ayrıca;

Environment.SetEnvironmentVariable("değişken", "değer"); ile değişkenlere değiştire bileğinizi belirtmek istiyorum. Ben bu metodu hiç kullanmadım dip not olarak vereyim.

Faydalı olması dileğiyle...