Mssql Linked Server'i kurmayı ve kullanmayı anlatan bir döküman hazırladım.
Giriş seviyesinde olup hızlıca hazırlanmıştır.
Yorumlarınızı bu başlık altında yapabilirsiniz.
Biraz girişten birşeyler yazalım;
Kısaca ne olduğunu açıklamak gerekirse uzağı yakın yapan, birden fazla database ile çalışmanızı sağlayan olağan üstü özellikli bir ürün.
Başlat -> Çalıştır -> cmd
osql -U username -P password -S VOLKAN -i "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Install\instdist.sql"
Entere bastiktan sonra şöyle bir hata alabiliriz ;
Not: Yukarda yazdığımız kodlar için ayrıntılı bilgi;
http://support.microsoft.com/default.aspx?scid=kb;en-us;906954
Örnek connection için bakınız.
Cannot execute the replication script in the 'master' database; the current session will be terminated. The script must be executed in the distribution database, and the master database cannot serve as the distribution database.
Bu hatanın nedeni User ‘in bu işleri yapmaya yetkisi olmaması.
Userin üzerindeyken sağ tıklayıp propertiese giriyoruz.
Sol tarafta Server Roles den bütün alanları tıklıyoruz.
(işimizi sağlama alalım)
User mapping den master databaseini seçip yetkileri ayarlıyoruz.
Tekrar kodumuzu yazıp entere basınca işlem tamamlanıyoruz. Aşağıdaki iş olmuştur mesajını alıyoruz.
[SQL Native Client]Shared Memory Provider: No process is on the other end of the pipe.[SQL Native Client]Communication link failure
Şimdi Linked Server kurulduğuna göre sıra geldi uzaktaki serverimizi eklemeye.
Bunu yapmak için kullanabileceğimiz procedurler ;
sp_addlinkedserver @server= '192.168.3.4' , @srvproduct= 'SQL Server ' --sql server bağlantısı için
sp_addlinkedserver
'ServerAdiniistediginizgibiyazin',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=VOLKAN;UID=volkan;PWD=123456;'
Bu bağlantı şekilleri hakkında detaylı bilgi ;
http://msdn.microsoft.com/en-us/library/ms190479.aspx
Kurduktan sonra bunu kontrol edelim gerçekten oldu mu diye.
sp_helpserver
komutu bize linked serverları listeler. Ardından Login olmamız gerekmekte. Bunun içinse aşağıdaki komutu yazarız;
sp_addlinkedsrvlogin 'ServerAdiniistediginizgibiyazin', 'true'
Eğer user ile login olacaksak.
sp_addlinkedsrvlogin 'ServerAdiniistediginizgibiyazin', 'false', 'volkan', 'volkan', '123456'
Eğer bunuda başarıyla yaptıysak şimdi sırada sql i yazmak var.
Select * From ServerAdiniistediginizgibiyazin.Database.dbo.Tabloadi
Yaptıklarımızı kısaca özetleyecek olursak
--server dahil edildi
1. sp_addlinkedserver @server= 'NOTEBOOK' , @srvproduct= 'SQL Server'
--istenirse ad deðiþtirme
1.1. --sp_setnetname @server = 'SERVER', @netname = SERVER2'
-- login olma
2. sp_addlinkedsrvlogin 'NOTEBOOK', 'true' --veya
sp_addlinkedsrvlogin 'NOTEBOOK', 'false', 'volkan', 'volkan', '123456'
--baðlý bulunduðum serverdaki kullanýcý adýmla
--sorgu yazma
4. Select * From ServerAdiniistediginizgibiyazin.Database.dbo.Tabloadi
-- drop etme
5. sp_dropserver @server = 'NOTEBOOK', @droplogins = null
--durum görme
6. sp_helpserver
Bunlar bu işi elle yapma yöntemleri diğer türlü nasıl yapılır ?
Microsoft SQL Server Management Studio yardımı ile şöyle yapabiliriz;
Connection Objesi yarattıktan sonra “Server Object” e tıklıyoruz açılan yerden Linked Servers e sağ tıklayıp yeni ekle diyoruz.
Linked Server Online Linked Server Doc