SQL Server Management Studio (SSMS) kullanarak Database yedeklerini Script olarak alma işlemi, özellikle detaylı konfigürasyonlara ihtiyaç duyulduğunda ve tekrar kullanılabilir bir yedekleme planı oluşturulmak istendiğinde oldukça önemli bir özelliktir. Bu işlem, yalnızca yedekleme işleminin gerçekleştirilmesiyle kalmaz, aynı zamanda bu yedekleme işleminin nasıl yapılacağını adım adım kaydedip, gerektiğinde bu adımların tekrar yürütülmesini sağlar. Böylece bir Database yedekleme işlemi sırasında kullanılan tüm parametreler, bir Script olarak kaydedilip, daha sonra manuel olarak ya da farklı sistemlerde yeniden kullanılabilir.
SSMS ile Database yedeklemesini Script olarak alma işlemi, teknik olarak yedekleme işleminin tamamlanmasından önce gerçekleştirilir. Yani, bir yedek alma işlemi başlatmadan önce tüm yapılandırmaları seçtikten sonra, işlem doğrudan yapılmak yerine, SQL Server Management Studio (SSMS) arayüzünden bu adımlar bir T-SQL Script'e dönüştürülür. Bu özellik, yedekleme işlemlerini kayıt altına almanın yanı sıra, özelleştirilmiş Script'ler oluşturulmasına da imkan tanır. Özellikle farklı sunucularda aynı yedekleme senaryolarını tekrarlamak gerektiğinde, bu Script'ler büyük avantaj sağlar.
SSMS üzerinden alınan bu Script'ler, SQL Server ortamında yedekleme politikalarının bir parçası olarak kullanılabilir. Örneğin, bir yedekleme işlemi sırasında hangi Database'in, hangi Disk veya Network sürücüsüne yedekleneceği, yedekleme sırasında hangi seçeneklerin etkin olacağı gibi detaylar Script'e dahil edilir. Böylece, her bir yedekleme işlemi için aynı ayarların tekrar tekrar seçilmesine gerek kalmaz, tüm işlem bir Script ile standardize edilir ve gerektiğinde başka sistemlerde de kullanılabilir.
Bu yedekleme işlemlerinde Script oluşturmanın bir diğer avantajı, herhangi bir sorun anında tam olarak hangi adımların uygulandığını görmek ve bu adımları tekrar gözden geçirebilmektir. Ayrıca, oluşturulan Script'ler üzerinde değişiklik yaparak, yedekleme stratejisini kolayca güncelleyebilir ve daha karmaşık yedekleme planları oluşturabilirsiniz.
1- Yedeğini Script olarak almak istediğiniz veri tabanı (Database) üzerinde sağ tıklayarak Generate Scripts... seçeneğini seçiyorum.
2- Karşıma çıkan Generate and Publish Scripts penceresinde Intruction adımında, Wizard ile yapılabilecek işlemlerle ilgili bilgi veriliyor. Açıklamada; "Bu sihirbaz ile seçilen veri tabanı neselerinin Script'leri alınır. Bu Script'ler, Database Engine üzerindeki bir Instance'da (kurulu bir SQL Server) veri tabanı oluşturulmak üzere saklanabilir ya da Database Publishing Web Service (Wizard) ile veri tabanı yayınlama işlemi gerçekleştirilebilir." ifadesi yer almaktadır. Next butonuna basarak işlemime devam ediyorum.
3- Choose Object adımında, hangi Database objesinin (veri tabanı nesnesi) Script'inin oluşturulacağını belirliyoruz.
Burada iki seçenek mevcut;
3.1- Script entire Database and all Database objects: Tüm veri tabanı ve veri tabanı nesnelerini seçme.
3.2- Select specific Database objects: Belirli veri tabanı nesnelerini seçme. Burası üç kısıma ayrılıyor;
3.2.1- Tables: İstenilen veri tabanı tablolarını tablo içleri boş olarak alır. Tablo içinde hiçbir bilgi barındırmaz.
3.2.2- Users: veri tabanına ait tüm tanımlı kullanıcıları alır.
3.2.3- Schemas: veri tabanına ait Schema (şema) yapısını da alır. Schema; Databasedeki tablo, view ve stored procedure gibi objeleri gruplamaya yarar. Bir objeyi bir şema altında yaratabilirsiniz veya bir şemanın altına transfer edebilirsiniz. Ayrıca şema bazlı yetki de verebilirsiniz. Yani DB User (veri tabanı kullanıcısı), sadece izin verdiginiz şemanın altındaki objeleri görebilir, diğer DB kullanıcıları göremez. Normalde obje sayılarının fazlalığı yönetimi ve izinlerini oldukça zorlaştıracaktır. Her bir objeyi tek tek yetkilendirmek yerine şema bazında yetkilendirme yapmak daha uygun olacaktır.
Siz bir şema tanımlamasanız bile Default olarak oluşturduğunuz objeler her zaman bir şemaya dahil olacaktır, örneğin SQL Server’da dbo şeması default olarak bulunur ve objeler aksi belirtilmediği müddetçe ".dbo" şemasına bağlı olarak oluşturulur.
CREATE Schema şema_ismi [ AUTHORIZATION kullanıcı_ismi ] [ şema_öğesi [ … ] ] |
gibi bir tanımlama ile şema oluşturabiliriz. Ek olarak, oluşturulacak olan şemanın ismi belirtilmezse, şema ismi olarak kullanıcı ismi kullanılır. Şemanın sahibi olacak kullanıcının ismi belirtilmezse, komutu çalıştıran kullanıcının ismi ön tanımlı olur.
4- Set Script Options altında, oluşturacağımız Script'in nereye kaydedileceğini belirliyoruz. Buradaki önemli olan detay, Advanced butonu altındadır.
5- Advanced butonuna tıkladığımızda, Advanced Scripting Options penceresi açılacaktır. Bu pencere içindeki Types of Data to Script önemlidir. 3. adımda ister Script entire Database and all Database objects seçmiş olun, isterseniz de Select specific Database objects altındaki Tables seçeneğinden istediğiniz bir tabloyu seçmiş olun, tablo içleri boş gelecektir. Bu nedenle burada, tablodaki verilerin alınıp alınmayacağı ile ilgili seçeneği yapılandırmamız gerekiyor.
• Data only:Tablo içine sadece Data'ları alır. Yukarıda belirttiğim gibi, Schema yapısını almaz ama default Schema yapısı oluşur.
• Schema and Data:Schema yapısı ile birlikte tablo Data'larını da alır.
• Schema only:Sadece Schema yapısını alır. Data'ları almaz.
Ben, Schema and Data seçeneğini seçip, Next butonuna basarak devam ediyorum.
6- Summary bölümünde karşımıza, Script oluşturmak için uyguladığımız gerekli yapılandırma ayarlarının özeti çıkıyor. Next butonuna basarak devam ediyorum.
7- Summary bölümünde Next butonuna basarak Save or Publish Scripts bölümüne geçiyorum ve otomatik olarak Script yapımız oluşturulmaya başlanıyor.
8- Script yapımız başarılı bir şekilde oluşturuldu.
9- Oluşturduğum Script, belirlediğim Path'e (dizin yoluna) oluşturuldu.
10- Oluşturduğum Script'i çift tıklayarak açıyor, içeriğini görüntülüyorum.
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.
1985 yılında Alanya'da doğdum. İlk, orta ve lise öğrenimimi Alanya'da tamamladım. Liseden mezun olduktan sonra Akdeniz Üniversitesi Bilgisayar Teknolojisi Ön Lisans programına yerleştim ve bu programdan mezun oldum. Ön Lisans programından mezun olduktan bir süre sonra Dikey Geçiş Sınavı (DGS) ile İstanbul Teknik Üniversitesi (İTÜ) Bilgisayar Mühendisliği Lisans programına yerleştim.
2003 yılından beri Bilgi Teknolojileri sektöründe Sistem ve Network alanlarında çalışıyorum. Bir çok firma bünyesinde onlarca farklı projelerde yer alarak bu alanda yıllar içinde ciddi bir bilgi birikimi ve deneyimler kazandım. Bilgi Teknolojileri sektöründeki profesyonel çalışma hayatımın uzunca bir dönemini entegratör firma bazında, ağılıklı olarak Microsoft ürünleri üzerine danışman olarak sürdürüyor ve yüksek seviyeli projeler geliştiriyorum. Uzunca bir süredir de Türkiye'nin önde gelen entegratör firmalarından olan Data Market bünyesinde Senior Cloud Engineer olarak çalışıyorum.
Ek olarak, 2015 yılında Network Akademi bünyesinde Microsoft Certified Trainer (MCT) ünvanı ile Sistem ve Network Uzmanlık eğitimleri vermeye başladım. Sistem ve Network Uzmanlığı alanındaki eğitmenlik serüvenime Network Akademi bünyesinde devam etmekteyim.