3 Ekim 2008 Cuma

SQL Server Hosting Toolkit

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 (\) 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

1 yorum:

Diyet Zayıflama Egzersiz dedi ki...

faydalı bir yazı oldu. ancak benim kullandığım panel plesk panel ve mssql sayfasında girdiğimde .sql scriptini açacağım File -> Open -> File with New Connection yolu yok haliyle. sadece tablo oluşturabiliyorum. bu halde localdeki veri tabanımı nasıl sunucuya taşırım?