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
|