20 Şubat 2015 Cuma

SQL Server 2012 Yenilikler-Contained Database


Bugün sizlere SQL Server 2012 ile yeni gelen bir özellik olan Contained Database özelliğinden bahsetmek istiyorum. Veritabanı yöneticileri için en önemli problemlerden biriside veritabanlarını bir sistemden diğer sisteme taşınmasıdır. Bulut bilişimin son derece revaçta olduğu bu dönemde bu taşıma  işlemi gerçekten DBAler için problem olmaktadır.  Bu taşıma işlemi backup-restore veya attach-detach kullanılarak gerçekleştirilir.

Bu taşıma işlemi sırasında veriler taşınırken sistem seviyesindeki yapılandırmalar aktarılamamaktadır. Contained database yeniliği ile sistem seviyesindeki yapılandırmalarda taşınabilmektedir.

Bulut bilişimin giderek revaçta olduğu günümüzde SQL Server taşıma işlemlerini kolaylaştırmak için Contained Database özellliğini çıkartırken Oracle ise 12c ile birlikte Multitenant teknolojisi çıkarmıştır.

Biz bu makalede Oracle teknolojisi üzerine girmeyeceğiz sadece Sql Server 2012 ile gelen bir özellik olan Contained Database teknolojisinden bahsedeceğiz.

Contained Database, veritabanında sistemde tutulması gereken tüm yapılandırmanın veritabanı üzerinde tutulduğu veritabanı modelidir.  Bütün metadata, yapılandırma ve security ayarları database üzerinde tutulduğu için sunucu bağımlılığı yoktur. Bu sebeble Contained Veritabanları bir sunucudan başka bir sunucuya kolaylıkla ve problemsiz olarak taşınabilir.

Contained Database özelliğini kullanabilmemiz için bu özelliğin aktif hale getirilmesi gerekmektedir. Bu işlem için T-SQL kodlarını kullandığımız gibi Sql Server Management Studio  kullanabiliriz.


 
Yukarıdaki ekranda Contained Database nasıl aktif hale getirildiği T-SQL kodu kullanılarak yaptık. Burada öncelikle Contained Database özelliği advanced bir özellik olduğu için advanced options özelliğini aktif hale getiriyoruz. Daha sonra Contained Database Authentication True hale getiriyoruz. Ve son olarak show advanced options seçeneği pasif hale getiriyoruz.






Bu işlemi yukarıdaki ekranda gösterildiği gibi SSMS ile de yapabilmekteyiz. Properties ekranını kullanarak  Enable Contained Database özelliğini TRUE yapabiliyoruz.

Yukarıdaki işlemler sayesinde Server seviyesinde Contained Database özelliğini aktif ettik. Contained bir veritabanı oluşturmak için 2 yöntem kullanmaktayız. Birinci yöntem T-SQL komutu kullanarak oluşturmak ikinci yöntem ise SSMS kullanılarak.

T-SQL Kullanarak Contained Database oluşturma işlemi aşağıdaki gibidir.



SSMS kullanılarak  oluşturmak için ise Database oluşturulduktan sonra Containment Type özelliği None'dan Partial olarak değişitirilerek yapılabilir. Bunun için Database Properties -Options kısmında Containment Type seçerek yapabiliriz.

Mevcut bir veritabanını ise aşağıdaki T-SQL komutu kullanarak Contained veri tabanı durumuna getirebiliriz.

 
Contained Databaselerde veritabanlarına ait özellikler ve metadata bilgileri Database Engine seviyesinde tutulmazlar. Database üzerinde bulunurlar. Bu nedenle oluşturacağımız kullanıcıları veritabanı seviyesinde oluşturmamız gerekir.

Sql Server DateTime Veri Tipindeki Datayı Türkçe Formatında Göstermek

  SQL'de tarihleri farklı formatlarda göstermek için FORMAT fonksiyonunu kullanabilirsiniz. Türkçe kısa tarih formatı genellikle "...