Son güncelleme tarihi: 30 Eylül 2008
Merhabalar,
En çok aldýðým ve gördüðüm sorulardan birisi þu:
"Uygulamam için, uygulamamý geliþtirdiðim bilgisayarýmda bir de SQL Server' da bir
veritabaným var. Þimdi bu uygulamamý internet ortamýna taþýmam gerekiyor. ASP.Net
dosyalarýmý FTP' den gönderiyorum, peki ya veritabanýmý nasýl göndereceðim?".
Ýþte bu yazýmda, Web programcýlýðýna yeni baþlayan arkadaþlarýn genelde bir sorun
olarak karþýlaþtýklarý bu iþlemi, SQL Server Hosting Toolkit
ile ne kadar kolay bir hale getirebileceðini anlatacaðým.
Þunu baþtan söylemek istiyorum, bu iþlemi yapmanýn sadece bir yolu yok; aslýnda
bu yazýmda diðer yöntemlerden de bahsedecektim, fakat gördüm ki sadece bu aracý
anlatmak bile uzun sürdü. Bu nedenle diðer yöntemleri baþka bir yazýmda anlatýrým.
Dediðim gibi, bir veritabanýndaki nesnelerin ve verilerin uzaktaki bir SQL Server
Instance' ýna gönderilmesi iþlemi bir kaç yöntemle gerçekleþtirilebilir. Tüm bu
yöntemlerdeki temel iþlem, ilgili nesnelerin Script' lerinin oluþturulmasý ve daha
sonra da verilerin aktarýlmasýdýr.
SQL Server Hosting Toolkit
Öncelikle sizlere bu aracý indirebileceðiniz
adresi vereyim:
SQL Server Hosting Toolkit
Uygulamayý kurduktan sonra, kýsayolunu "Baþlat\Programlar\Microsoft SQL Server Database
Publishing Wizard" olarak bulabilirsiniz.
Ayrýca, bu uygulama Visual Studio 2005 ve Visual Web Developer 2005 ürünleri ile
de bütünleþik bir þekilde çalýþmaktadýr. Bu uygulamayý yükledikten sonra, Visual
Studio içerisindeki "Server Explorer" isimli penceredeki bir veritabaný baðlantýnýzýn
üzerindeyken farenin sað tuþuna týklarsanýz "Publish to Provider..." seçeneðini
göreceksiniz. Ýþte bu seçeneðe týklayarak, veritabanýnýzý uzaktaki SQL Server Instance'
ýna aktarmak için kullanacaðýnýz SQL Server Hosting Toolkit' i açmak için kullanabilirsiniz.
Bunlara ek olarak, bu uygulamanýn bir de Komut Ýstemcisi versiyonu mevcuttur. Yani
sadece GUI' yi kullanarak deðil, bu Komut Ýstemcisi uygulamasýný da kullanarak ayný
iþlemleri yapmanýz mümkündür.
Bu aracý kullanarak, veritabanýnýzý iki farklý yol ile uzaktaki SQL Server Instance'
ýnýza gönderebilirsiniz. Bunlar:
-
Database Publishing Wizard: Bu yöntem, genel
olarak sorunsuz çalýþan bir sistemdir. Veritabanlarýný, uzaktaki SQL Server Instance'
ýna yüklemek isteyenlerin genelde kullanmak isteyeceði bir yöntem.
-
Database Publishing Services: Bu yöntem ise
henüz tüm Hosting þirketleri tarafýndan kullanýlmýyor. Çünkü bunun için, Barýndýrma
þirketinin bu servisleri SQL Server sunucusuna kurmasý gerekiyor.
Uygulamayý çalýþtýrdýðýnýzda, karþýnýza ilk önce "hoþ geldiniz" ekraný çýkacaktýr.
Burayý geçtikten sonra ise, aktarýlacak veritabanýný seçeceðiniz yerel SQL Server
Instance' ýnýza baðlanmak için gereken bilgileri girmeniz gereken "Select Source Server" penceresi ile karþýlaþacaksýnýz.
(bkz. Resim 1)

Resim 1 |
"Server" metin kutusuna, yerel bilgisayarýnýzda yüklü olan ve veritabanýnýzýn bulunduðu
SQL Server Instance' ýnýn tam yolunu (<BilgisayarAdý>\<InstanceAdý>)
yazýn. Meselâ eðer bilgisayarýnýzda Visual Studio 2005 varsa, onunla birlikte de
SQL Server 2005 Express Edition kurduysanýz, yüklenen SQL Server Instance' ýnýn
varsayýlan Instance' adý "SQLExpress" tir.
Diðer bir seçenek de, Instance' ýnýza bir Baðlantý Metni (Connection String) kullanarak
baðlanmaktýr. Bunu da, yine ayný pencerede "Provide connection string" olarak bulabilirsiniz.
Ýlgili SQL Server Instance' ýnýza baðlanmak için gereken bilgileri girdikten sonra
"Next" düðmesine týklayarak diðer pencereye geçin.
"Select Database" penceresinde (bkz. Resim 2), aktarmak istediðiniz veritabanýný
seçebilirsiniz. Bir seferde sadece bir veritabaný seçebilme hakkýnýz var.

Resim 2 |
Yine ayný pencerenin alt kýsmýnda bir seçim kutusu göreceksiniz: "Script all objects
in the selected database" (Seçili veritabanýndaki tüm nesnelerin Script' ini oluþtur.)
Bu örnekte ben bu seçeneði iþaretsiz býrakacaðým, çünkü bu seçeneði seçtiðinizde,
bu sihirbaz aktarabileceði tüm nesnelerin Script' ini oluþturacaktýr. Benim bu seçeneði
seçmememin nedeni ise, bir sonraki pencerede Script' lerinin oluþturulabileceði
nesnelerin listesini görebilmenizdir. (bkz. Resim 3)

Resim 3 |
"Choose
Object Types" te de görebileceðiniz gibi, ben sadece "Tables" nesneleri üzerinde
iþlem yapmak istediðimiz belirttim; durumunuza göre istediðiniz nesneleri seçebilirsiniz.
(bkz. Resim 3) Ayrýca, veritabanýnýzda yukarýdaki tüm seçenekler çýkmayabilir. Bunun
nedeni, veritabanýnýzda o nesnelerden bulunmamasýdýr. Meselâ eðer veritabanýnýzda
hiç "View" yoksa, o zaman bu pencerede "Views" seçeneðini göremezsiniz.
Aktarmak
istediðiniz nesne grubunun adýný seçtikten sonra -ki bizim örneðimizde bu "Tables",
karþýmýza "Choose Tables" penceresi çýkacak (bkz. Resim 4). Tahmin edebileceðiniz
gibi, diðer nesneler için de ilgili diðer pencerelerle karþýlaþacaksýnýz. Bu pencerelerde,
o gruba ait hangi nesneleri aktarmak istediðinizi tek tek (veya hepsini) seçebileceksiniz.

Resim 4 |
Seçimlerinizi
yaptýktan sonra sýra, Script dosyasýnýn oluþturulacaðý yeri ve gönderme þeklini
belirlemeye geliyor. Biz, gönderme yöntemi olarak Script dosyasýný oluþturma yöntemini
kullanacaðýz. Çünkü þu anda çalýþtýðým barýndýrma þirketlerinden hiçbirisi Database
Publishing Services hizmetini vermiyor.

Resim 5 |
"Select an Output Location" penceresinde Script dosyasýný
kaydedeceðiniz yeri seçtikten sonra, bu Script dosyasýnýn oluþturulmasýnda kullanýlacak
seçeneklerin belirlenmesi için bir sonraki pencere olan "Select Publishing Options"
penceresine (Resim 6) geçin.

Resim 6 |
Drop existing objects in script:
Eðer deðeri "True" ise hedefte ayný isimle zaten varolan nesneler bu Script dosyasýndakilerle
deðiþtirilir.
Schema qualify: Eðer deðeri "True"
ise üzerinde iþlem yapýlacak nesneler için Schema isimleri de kullanýlýr. (Örn:[SchemaAdý].[NesneAdý])
Script for target database:
Script dosyasýnýn SQL Server 2000 veya SQL Server 2005' e göre düzenlenmesi belirlenir.
Types of data to publish:
Sadece Schema veya sadece veri veya her ikisinin de Script' lenmesi ayarlarý
yapýlýr.
Bundan sonraki pencerede ise þu ana kadar yapmýþ
olduðunuz seçimlerin listelendiði özet bölüm vardýr ve bu sihirbazdaki son penceredir.
Tüm iþlemleri tamamladýnýz ve elinizde veritabanýnýzýn
Script dosyasý var. Þimdi, bu dosyayý kullanarak veritabanýnýzý uzaktaki SQL Server
Instance' ýnda nasýl oluþturacaðýnýzý anlatacaðým. Bu iþlem için bir kaç yöntem
var, hangisinin en kolayý olduðu tabi size kalmýþ; fakat benim kendi yöntemim SQL
Server Management Studio' yu kullanmak. Alternatif olarak SQLCMD ("sqlcmd.exe" SQL
Server Instance' ýnýza karþý iþlem yapabileceðiniz ve SQL Server 2005 ve sonrasý
versiyonlarla gelen bir Komut Ýstemcisi uygulamasý, önceki versiyonu ise "osql.exe"
dir.) yi de kullanabilirsiniz.
Eðer bilgisayarýnýzda SQL Server Management
Studio yok ise, SQL Server Management Studio Express aracýný ücretsiz olarak
buraya týklayarak indirebilirsiniz.
Bu aracýn içerisinde, oluþturmuþ olduðunuz *.SQL dosyasýný çalýþtýrabileceðiniz
"Query Editor" bölümü bulunmaktadýr. (bkz. Resim 7)

Resim 7 |
SQL Server Management Studio' nun "File -> Open
-> File with New Connection..." komutunu çalýþtýrýn. Sizden, bir *.SQL dosyasý
açmanýz beklenecektir. Database Publishing Wizard ile oluþturmuþ olduðunuz dosyayý
bulun ve açýn. Daha sonra, bu dosyayý çalýþtýrmak için baðlanýlacak olan SQL Server
Instance' ýnýn bilgilerini girmeniz istenecek. Bu bilgileri doðru bir þekilde girip
SQL Server Instance' ýnýza baðlandýðýnýzda, Database Publishing Wizard ile hazýrlamýþ
olduðunuz *.SQL dosyasýnýn da açýldýðýný göreceksiniz.
Veritabanýnýzý oluþturmak için son adým olarak Query
Editor penceresindeki komutlarý çalýþtýrmak kaldý. Bu noktada, SQL Server Management
Studio' nun "SQL Editor" araç çubuðundaki veritabaný listesinden doðru veritabanýnýn
seçili olduðundan emin olun. "Doðru veritabaný" derken, bu Script dosyasýný çalýþtýracaðýnýz
veritabanýný kastediyorum. Þayet yanlýþ bir veritabaný seçiliyse, oluþturmuþ olduðunuz
bu Script dosyasýndaki tüm nesneler yanlýþ veritabanýnda oluþturulacaktýr. Bu yüzden
doðru veritabanýný seçmek gözden kaçýrýlmamasý gereken önemli bir adým. Doðru veritabanýný
da seçtikten sonra, Script dosyasýndaki komutlarý çalýþtýrmak için ya "F5" kýsayol
tuþunu veya yukarýdaki menüden "Query -> Execute" komutunu veya "SQL Editor"
araç çubuðundaki "Execute" isimli düðmeye týklamanýz gerekiyor.
Özetle bu yazýda, Database Publishing Wizard ile,
yerel SQL Server Instance' ýnýzda oluþturmuþ olduðunuz veritabanýnýzý, uzaktaki
baþka bir SQL Server Instance' ýnda nasýl oluþturacaðýnýzý anlatmaya çalýþtým. Umarým
iþinize yarar.
Ekrem Önsoy
|