Azure Storage etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Azure Storage etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Mart 2015 Çarşamba

Veri Yönetimi Ekibi - SQL Server 2014 ile Buluta Veri Yedekleme - Web Semineri

SQL Server 2014 ile birlikte veri yedekleme konusunda URL Backup (Azure disklerine yedek almak), Backup Encrytion, Smart Backup gibi çeşitli yenilikler duyuruldu.

Bir kısmını yukarıda belirtmiş olduğum yenilikler sayesinde, veritabanı yedeklerinizi artık gönül rahatlığı ile Azure disklerinde saklayabilir, internetin olduğu her yerden kolayca erişebilirsiniz.

Azure diskleri ile, veritabanı yedeklerinizi saklamaktan çok daha fazlasını yapabilirsiniz. Azure'un bu hizmeti ile neler yapılabileceğini görmek için şu linke bir göz atın:

Microsoft Azure - Bulutta Veri Hizmetleri - 2 (Buluta Veri Depolama - Azure Storage)
http://abdullahkise.blogspot.com.tr/2015/01/microsoft-azure-bulutta-veri-hizmetleri.html

Web semineri ile ilgili olan bir kaç makale :

SQL Server 2014 Yenilikleri - 1 (Hybrid Cloud)

Hibrit Bulut - Hybrid Cloud (Azure ve SQL) Web Semineri - (Video)

SQL Server 2014 Yenilikleri - 5 (Backup Encyrption)

SQL Server 2005, 2008, 2008 R2 ve 2012 Yedeklerinizi SQL Server 2014 Yedekleme Özellikleri ile Azure'da Saklayabilirsiniz!

Microsoft Azure - Bulutta Veri Hizmetleri - 1 (Yönetim Portalleri, Hizmet Modelleri ve Fiyatlandırma )

Veri Yönetimi ekibinde Takım Lideri görevini üstlenen Abdullah Altıntaş, enfes sunumuyla bu web seminerinde şu konulara odaklanacak:

Lokalde bulunan veritabanlarının SQL Server 2014 ile beraber Microsoft Azure Storage üzerine backup alma işlemleri ele alınıyor olacak. Veritabanlarının şifreli (encrypted), sıkıştırılmış (compressed) ve normal şekilde MS Azure portalı üzerinde tanımlanan storagelara yedeklerinin alınmasını ve şifreli yedeklerin diğer serverlar üzerine nasıl restore edilebileceği ele alınacaktır.

Ayrıca Azure Storage Explorer ve Azure Backup Tool kullanımı ile storage ve SQL Server 2012 öncesi şifreli ve sıkıştırılmış yedeklerin Microsoft Azure üzerine nasıl upload edilebildiği aktarılacaktır.

6 Mart 2015 - Cuma
11:00 - 12:00

Abdullah Altıntaş

Aşağıdaki link yardımıyla, seminer saatinden 10 dakika önce Live Meeting ile bağlanıp, online olarak katılım sağlayabilirsiniz.

https://msevents.microsoft.com/cui/EventDetail.aspx?culture=tr-TR&EventID=1032612179&IO=nI8K%2fKFau8y1zRbWxT0T0Q%3d%3d



Duyurunun Orjinali :

Bu web seminerinde; SQL Server 2014 yenilikleri kapsamında lokal sistemlerdeki veritabanlarının Azure platformu üzerine backup alınması işlemleri ele alınıyor olacaktır.

6 Mart 2015 - Cuma
11:00 - 12:00
Abdullah Altıntaş

Diğer web seminerleri ulaşmak ve oturuma dahil olma yöntemini öğrenmek için şu linke bir göz atabilirsiniz:

27 Ocak 2015 Salı

Microsoft Azure - Bulutta Veri Hizmetleri - 2 (Buluta Veri Depolama - Azure Storage)

Bir önceki yazımızda Microsoft Azure dünyasına hızlıca giriş yapabilmek için bulut bilişimden, Azure hizmet modellerinden, yönetim portallerinden ve fiyatlandırmalardan bahsetmiştik. Bu yazımızda ise temel bir ifade ile bulutta konumlandırdığımız disklere, yani Azure Veri Hizmetlerinden biri olan Azure Storage’e odaklanıyor olacağız. Bir önceki yazıya şu linkten ulaşabilirsiniz:


Bulut bilişim dünyası, uygulamaların yeni senaryoları işleyebilmesi için, verilerin depolandığı ölçeklenebilir, sürekli ve yüksek erişebilirlik ihtiyaçlarına cevap veren ortamlar sunmaktadır. Microsoft Azure’un bu kapsamdaki hizmetinin adı ise “Azure Storage” dir.

‘Azure Storageler’i, basitçe buluttaki diskleriniz olarak düşünebilirsiniz. Sanal makinelerinize ait verileri(diskler), Big Data kapsamında işlenen uygulama verilerini, bulutta konumladığınız bir websiteye ait verileri, yerel sunucularınızdan aldığınız veritabanı yedeklerini veya herhangi bir dokumanı bu ‘storage’lerde tutulabilirsiniz.

İstemciler ‘Azure Storageler’e çeşitli işletim sistemleri üzerinden, .NET, Java, C++ gibi birçok programlama dilleri ve hatta sadece https/https istekleri gönderip alabilen mekanizmalar vasıtası ile dünyanın herhangi bir yerinden erişim sağlayabilirler.

Standart ödeme tipinde bir “storage account” oluşturduğunuzda Blob Storage, Table Storage, Queue Storage ve File Storage hizmetlerini kullanmaya başlayabilirsiniz.



Blob Storage:


Büyük miktarda yapısal olmayan verileri tutmak için tasarlanmış bir hizmettir. Resim, müzik, video, text, binary, veritabanı yedekleri, loglar vs. gibi birçok dosya türü birçok amaç için ‘Blob Storage’de depolanabilmektedir.

Oluşturduğumuz ‘Storage Account’ altında, yerel disklerdeki klasörlere benzetebileceğimiz ‘Container’lar yer alır. Bu ‘Container’larda çeşitli boyutlarda ve tiplerde genel olarak Blob adı verilen dosyaları depolayabiliriz. Container veya Blob sayısında bir limit yok. Ancak bir Sorage Account toplamda en fazla 500 TB olabilir.

Blob Storage yapısı şöyledir:


‘Blob’lar hiyerarşiye uygun olarak URL ile adreslenmiştir. Bloblara erişim HTTP veya HTTPS üzerinden kolaylıkla sağlanabilmektedir.

Table Storage:

Azure Table Storage büyük miktarda yapısal olan ve ilişkisel olmayan veriyi yani NoSQL verilerini depolamak için tasarlanmış bir hizmettir.

NoSQL veritabanları birkaç kategoriye ayrılır. Bu kategorilere şu linkten bir göz atabilirsiniz: http://en.wikipedia.org/wiki/NoSQL

Bu kategoriler; Document, Key/Value, Column Family ve Graph olarak isimlendirilir. Microsoft Azure Document DB hizmeti ile Document kategorisini, HBase hizmeti ile Column Family kategorisini ve Tables hizmeti ile Key/Value kategorisini desteklemektedir.

Bir Storage Account oluşturulduğunda Table Storage de aktif olur. Table Storage içerisinde veritabanlarındaki satırlara benzer şekilde Entity adı verilen kayıtlar oluşturabiliriz. ‘Entity’lerin her biri en fazla 1MB olabilir. ‘NoSQL’in doğası gereği bu entitylerin yapısı aynı olmak zorunda değildir. Bu konsept, erişimin hızlı olmasını sağlayan denormalized dizaynın oluşmasını kolaylaştırır.

Table Storage yapısı şöyledir:


Verilere .NET kütüphaneleri ve OData protocolü ile erişilebilmektedir.

Queue Storage

Azure Queue Storage büyük miktarda mesajlaşma verisini depolamak için tasarlanmış bir hizmettir. Uygulamalar arasında asenkron mesajlaşma imkânı tanır. Bir ‘Queue’de her biri en fazla 64 KB büyüklükte olan sınırsız sayıda mesaj depolanabilir.

Bir Storage Account oluşturulduğunda Queue Storage de aktif olur.

Queue Storage yapısı şöyledir:


İçerisinde mesajları barındıran her bir Queue URL yardımıyla adreslenmiştir. Mesajlara erişim HTTP veya HTTPS üzerinden kolaylıkla sağlanabilir.

File Storage:

Azure File Storage, lokalde veya bulut üzerinde koşan uygulamalar arasında paylaşılan bir depolama ortama sunulabilmesi için tasarlanmıştır. Örneğin konfigürasyon dosyalarını, logları depolamak için bu hizmeti tercih etmek isteyebilirsiniz.

İletişim için standart “Server Message Block (SMB 2.1)” protokolü kullanılmaktadır. Azure üzerindeki uygulamalar File I/O API’lar yardımıyla bu paylaşıma erişebilirler. Dolayısıyla lokalde dosya paylaşımı gerektiren bir uygulamanız varsa kodlarda çok fazla değişiklik yapmadan bu uygulamayı buluta taşıyabilirsiniz.

Bir Storage Account oluşturulduğunda File Storage aktif olur. File Storage içerisinde konumlayabileceğimiz dosyaların boyutu maksimum boyutu 1 TB olabilir. Dosyaların bir üstünde kullanılması zorunlu olmayan Directory hiyerarşisi mevcuttur. Bir üstte ise tanımlanması zorunlu olan Share hiyerarşisi bulunur. Tüm dosyalar URL yardımıyla adreslenmiştir.

File Storage yapısı şöyledir:


Azure storage account nasıl oluşturulur?


Azure Storage Account oluşturmanın birçok yöntemi var. Bunlardan birisi de Azure Management Portal’dir. Full Portal veya New Portal ile Storage Accountları kolayca oluşturabilirsiniz.

Bu portallerden bir önceki yazıda bahsetmiştik.

Storage account oluşturulurken temel olarak uygun bir isim vermeniz, iş yükünün olduğu bölgeye yakın bir lokasyonu seçmeniz ve storageinizin kopyalarının oluşturulması için replication türünü belirtmeniz yeterli.

New Portal yardımıyla:



Full Portal yardımıyla:


Kopya sayısı ve kopyaların okunmasını etkileyen üç farklı standart replication türü mevcut. “Local redundant” seçilirse aynı verimerkezinde 3 kopyanız bulunur. “Geo-Redundant” seçilirse aynı şekilde başka bir bölgede daha kopya oluşturulur. Eğer “Read-Access Geo-Redundant” seçilirse ikinci bölgedeki kopya okunabilir olarak tanımlanmış olur. Tabi ki bu seçim ödeme miktarını da etkileyecek.



Gerekli konfigürasyonu yaptıktan sonra onay verdiğimizde kısa sürede Azure Storege Account kullanılabilir hale gelecektir.

Verilerinizi Blob Storagelerde tutmak isterseniz bir Container oluşturmanız gerekir. Erişim tipini Private, Blob, Container olarak belirtebilirsiniz. Private sayesinde anonim isteklerin erişimine izin vermemiş olursunuz. Blob ile anonim isteklerin Bloblara erişimine izin verirsiniz. Container ile de anonim isteklerin hem bloblara hem de bunların listesine erişmesine izin vermiş olursunuz.

Seçiminizi portalden kolayca değiştirebilirsiniz.


Blob, Entity ve Message depolama işlemi Azure Manegement Portal üzerinde yapılamamaktadır. Ancak Azure Storage Accountlara erişim konusunda bu websitesinden çok daha fazlasına sahibiz.

Depolanan verinin erişimi ve yönetimi nasıl yapılır?


Azure Storage Account içeriğini yüklemek, görüntülemek ve yetkilendirmeyi yapabilmek çeşitli ücretsiz uygulamalar bulmak mümkün. Benim en çok kullandığım uygulama CodePlex’te yayınlanan “Azure Storage Expolorer” dır. Şu adresten indirip kullanabilirsiniz.

Daha önce şu yazımda bu uygulamanın nasıl kullanıldığından bahsetmiştim:

Özetle “Add Account” butonu ile açılan pencereye Storage Account adını ve portal üzerinden elde edebileceğiniz Storage Account Keyini girmeniz yeterli.


Sonrasında uygulama Azure Storage bağlanarak yerel diskinizmiş gibi kullanmanıza olanak tanıyacak. Ayrıca bu uygulama yardımıyla istemcilerin erişim ‘policy’lerini oluşturmak da mümkün. Böylece “Shared Access Signature” üretebilir, istemcilerin bu key yardımıyla belli zaman aralığında ve istediğiniz yetkiler (okuma, yazma, silme, listeleme) doğrultusunda erişmesini sağlayabilirsiniz.

‘Azure Storage’e bağlanmak için kullandığımız Endpoint ve Key bilgilerini Portal üzerinden kolayca elde etmek mümkün.



Storageler üzerindeki geliştirmelerinizi REST API, .NET kütüphaneleri ve powershell yardımıyla da yapabilirsiniz. Tüm erişimlerde yukarıdaki Endpoint ve Key bilgilerine ihtiyacınız olacak.

REST API:


REST API erişim özelliği sayesinde http/https isteği gönderip alabilen tüm uygulamalar ve hizmetler ile programatik erişim sağlamak mümkün olmaktadır. PUT, GET, POST gibi metotlar yardımıyla istekler göndererek Storage hizmetinden faydalanabilirsiniz.

REST API konusuna ilginiz varsa şu linklere bir göz atmanızı öneririm:



Azure PowerShell:


Bir başka yöntem olarak Azure Powershell’i tercih edebilirsiniz. Scriptler yardımıyla çalışılan güçlü ve pratik bir yöntem olduğunu söyleyebilirim. Azure PowerShell’i nasıl kuracağınıza şu adresten bir göz atabilirsiniz:

.NET Kütüphaneleri:


Ve tabi ki .NET kütüphanelerini de tercih etmeniz mümkün. Bunun için projenize “Microsoft.WindowsAzure.Storage.dll” assemblysini aşağıdaki yöntemle (NuGet) referans etmeniz gerekmektedir.


Sonrasında bir takım sınıflar kullanarak aşağıdaki formatta connection string ile Storage Accounta bağlantı kurabilir, geliştirmeyi dilediğiniz gibi yapabilirsiniz.

“DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key”

.NET geliştiricisi iseniz şu ‘Class Library’lere bir göz atmanızı öneririm:

Ölçeklenebilirlik, Performans, Ücret ve dahası


Performans ve ölçeklenebilirlik hakkındaki bilgiler için şu linke bir göz atabilirsiniz:

Storage hizmet kullanım bedellerine şu adresten erişebilirsiniz:

Daha fazlası için Azure hizmetleri konusunda bir hayli faydalı bilgiler sağlayan şu dokümantasyon linkini ziyaret edebilirsiniz:
http://azure.microsoft.com/en-us/documentation/services/storage/

Biraz daha derine dalmak isteyenler için:


Bu yazımızda “Azure Storage Accountları” görsel olarak “Azure Management Portal” üzerinde nasıl oluşturulabileceğini, sonrasında aktif olan Storage hizmetlerini ve bu hizmetleri yönetmek için kullanılan programatik yöntemleri ele aldık. Serinin devamında sırasıyla, veri ve analitik çözümlerle ilgili diğer hizmetlere yoğunlaşacağız.

Faydalı olması dileğiyle…


8 Temmuz 2014 Salı

Hibrit Bulut - Hybrid Cloud Web Seminerini Kaçırmayın!

SQL Server 2014 ve Microsoft Azure bir araya gelerek hibrit bulut çözümlerini veritabanı yöneticilerine sundu. Bu çözümler sayesinde yedeklilik ve yüksek erişebilirlik daha uygun maliyetlerle elde edilebilmektedir.

Bulutun gücü sadece SQL Server 2014'de değil önceki versiyonlarda da kullanılabilmektedir.

Bu web seminerimizde hibrit bulut çözümlerinin yeteneklerini şu başlıklar altında inceliyor olacağız.

  • SQL Azure Database
  • Backup to Cloud
  • SQL Server Data Files in Windows Azure
  • Deploy DB to Windows Azure VM
  • Cloud HA-DR
Microsoft Azure üzerinde veri odaklı çalışmalar yapan, yapmayı planlayan veya sadece merak eden herkesi bu seminere davet ediyoruz.

Etkinlik Tarihi:
09 Temmuz 2014 Çarşamba - Saat 10:00


Hibrit Bulut ve SQL Server
Windows Azure ve SQL Server'ı bir araya getirerek süreklilik ve yedekliliği nasıl arttırabileceğimizi inceleyeceğiz.



Etkinliğe kayıt olmak için :

Seminerde görüşmek üzere...

31 Mayıs 2014 Cumartesi

SQL Server 2005, 2008, 2008 R2 ve 2012 Yedeklerinizi SQL Server 2014 Yedekleme Özellikleri ile Azure'da Saklayabilirsiniz!

Verilerin başına bir şeylerin gelmeye başladığı anı felaket (Disaster) anı olarak isimlendiriyoruz. Bu anı yaşama ihtimalini en aza indirmek için alınacak önlemlere ise yüksek erişilebilirlik (High Availability) çözümleri denmekte. Bu kapsamdaki çözümler AlwaysOn (Failover Cluster - Availability Group), Mirroring, Log Shipping ve belki Replicationdır. Eğer felaket anı yaşanmışsa yapılacak çok fazla şey yok demektir. Bu durumda işimize yarayacak şeyler; yedeklerimiz (backup), veritabanının anlık görüntüleri (snapshop) ve/veya veritabanın önceden bir yere ayrılmış data ve log dosyalarıdır.

Felaket sonrasına hazır olmak her veritabanı yöneticisinin boynunun borcudur. Yedekleme planı hassasiyetle belirlenmeli ve belli aralıklarla gözden geçirilmelidir. Yedekler lokal olmayan birkaç farklı noktaya dağıtılmalı ve güvenliği sağlanmalıdır. Bu güvenlik hem veriye istenmeyen kişilerin erişimi ile ilgili hem de fiziksel anlamda verilerin sağlığı ile ilgilidir. Ayrıca yedeklerin daha az yer kaplaması için veri sıkıştırma çözümleri göz ardı edilmemelidir. Neyse ki SQL Server 2008’den beri backup compression, SQL Server 2005’den beri encryption direk desteklenmektedir.

Birçok veritabanı yöneticisi bu yedekleme mevzusuna oldukça dikkat etmekte, hatta bu dikkatleri yüzünden yedekten dönme (restore) senaryolarını göz ardı edebilmektedir. Yedekleme ne kadar önemliyse bu yedeklerin kullanılabiliyor olması da o bir kadar önemli. Bu kapsamda belirli aralıklarla felaket tatbikatları yapılmalı ve bu esnası karşılaşılan problemler not edilmelidir. Ancak bu şekilde ortaya çıkarılan aksiyon planları sayesinde gerçek felaket anında soğukkanlılıkla gerekenler yapılabilir.

Yedekleme üzerine söylenebilecek bir çok söz var. Biz bu yazımızda lokal olmayan farklı ortamlara yedek alma konusunu gündemimize alarak yedeklerin Windows Azure Storagelerine nasıl gönderilebileceğini inceleyeceğiz.

SQL Server 2012 SP1 CU2 ve SQL Server 2014 ile birlikte URL backup özelliği sayesinde Azure disklerine yani buluta yedekler alınabilmektedir. Ayrıca yeni gelen Backup Encryption özelliği ile tek başına yedekler şifrelenebilmektedir. Bu sayede yedekleri korumak için TDE yöntemi ile şifreleme yapmayarak SQL Serverı gereksiz CPU yükünden kurtarmış oluruz.

SQL Server 2014 ile buluta nasıl yedek alınabileceğini şu yazımızda açıklamıştık:

Yeni versiyonlarda bu özellikler mevcut ve kullanılabilir durumda. Peki ya önceki versiyonlar?

Microsoft SQL Server Backup to Windows Azure Tool (bundan sonra Backup to Azure diyelim) sayesinde SQL 2005, 2008, 2008 R2 ve 2012 versiyonlarında aldığınız yedekleri buluta otomatik olarak gönderebilir, bu yedekleri bulutta sıkıştırıp şifreli olarak tutabilirsiniz. Ya da bu özellikleri sadece lokalinizde kullanabilirsiniz.

Backup to Azure aracı SQL Server 2005 ve sonraki yedekleriniz için çalışır. Windows Server 2008 ve sonraki server işletim sistemlerinde, Windows 7 ve sonraki client işletim sistemlerinde kullanılabilir.

Backup to Azure aracını “Microsoft Download Center” dan ücretsiz olarak indirebilirsiniz.




Birkaç adımda kurulum tamamlandıktan sonra bilgisayarımızda şu bileşenler kurulmuş olur:
  •           Microsoft SQL Server Backup to Windows Azure Tool servisi.-        



  •        BackupToAzure grubu ve SQLBackup2Azure kullanıcısı


Nasıl yapılıyor?

Eğer buluta yedek alacaksak öncelikle Windows Azure üzerinde bir storage oluşturmalıyız. Storage / Create Storage Account seçenekleri ile aşağıdaki şekilde disyedek isimli bir account oluşturabiliriz. Burada iş yükünün konumlanacağı bölgeyi ve storagein nasıl yedekleneceğini de belirtiyoruz.


Yedeklerimizi Storage içerisindeki Containerlarda (disk sisteminde klasöre tekabül eder) tutabiliriz. Bu sebeple yeni bir container oluşturmamız ve erişim seviyesini belirtmemiz gerekir. Biz de yedekler-2005-2012 adındaki containerı aşağıdaki şekilde oluşturuyoruz.



disyedekler isimli Stroge account ve yedekler-2005-2012 isimli container hazır. Şimdi sıra geldi Backup to Azure aracımızda gereken ayarları yapmaya.

Aracı açtıktan sonra Add butonunu kullanarak yedekleme kuralları (Rule) tanımlamamız gerekiyor. İlk adımda yedek alacağımız klasörü ve işleyeceğimiz yedek dosyalarının isim paternini belirtiyoruz.



İkinci adımda yedeği buluta mı göndereceğimizi yoksa tercih edeceğimiz şifreleme ve sıkıştırma özelliğini sadece lokalde mi yapacağımızı belirtiyoruz. İlk seçenek seçilirse istenen özellikler yedeklere olduğu yerde uygulanır. İkinci seçenek seçilirse istenen özellikler uygulanır ve yedekler buluta taşınır. Yedek aldığımız klasörde ise içerisinde sadece metadata bilgisi bulunan yedekle aynı isimde bir dosya bırakılır.



Biz azure storage seçeneği ile ilerliyoruz ve yukarıdaki gereken bilgileri aşağıdaki azure ekranından temin ediyoruz. Bu ekrana oluşturduğumuz azure diski seçiliyken aşağıdaki şeritte bulunan MANAGE ACCESS KEYS butonu ile ulaşıyoruz.



Stroage Account ve Containerı doğruladıktan sonra bir sonraki adıma geçip yedeklerimize uygulamak istediğimiz özellikleri belirtiyoruz.



Biz bu çalışmamızda bir şifre girerek Encryption özelliğini ve yedeği sıkıştırmak için Compression özelliğini aktif ettik. Finish diyerek sonraki adıma geçebilir tüm tanımlı kuralları görüp üzerinde değişiklikler yapabilirsiniz.



Bu tanımlamayı yaptık sonra uygulamanın açık kalmasına gerek yok. Ancak servisin açık olduğundan emin olmamız gerekir. Tanımladığımız bu kural belirttiğimiz yedek klasöründe BackupToAzure grubuna özel izin verdi. Bu iznin de varlığından emin olmamız gerekir.



Örneğimde metadata dosyasına dikkat çekmek için iki yedek alacağım. Bunlardan birisini araç ile takip etmediğim bir yere yani C:\AzureYedekler klasörüne şu script yardımıyla alıyorum:

-- sıkıştırmadan lokale yedek alalım
BACKUP DATABASE [Veritabani_2005-2012]
TO  DISK = N'C:\AzureYedekler\Veritabani_2005-2012.bak'

Bu şekilde aldığım yedeğin boyutu 8MB ve içerisinde beklenildiği üzere gerçekten veri mevcut.
İkinci yedeğimi Backup to Azure aracı ile takip ettiğim yere yani C:\AzureYedekler\2005_2012 klasörüne benzer şekilde alıyorum:

--sıkıştırarak Backup2Azure aracının takip ettiği yere yedek alalım
BACKUP DATABASE [Veritabani_2005-2012]
TO  DISK = N'C:\AzureYedekler\2005_2012\Veritabani_2005-2012.bak'

Bu sefer yedek dosyası 23KB olarak görünüyor. İşte bu dosya içerisinde veri değil işlenen yedeğe ulaşabilmeyle alakalı bilgiler tutulmaktadır. Dosyayı açtığımızda aşağıdaki şekilde başlayan metadataya erişebilirsiniz.


Bulutta ise iki dosya oluşmaktadır. Bunlardan sonu enc ile biten içerisinde gerçekten veri bulunurken diğerinde ise yine metadata yer almaktadır.



İlk yedekten bu yana yapılan tüm işlemlere Azure Storage Explorer aracını da dâhil ederek bakarsak aşağıdaki gibi bir ekranla karşılaşmış oluruz.



Azure disklerini neredeyse lokal diskleriniz kadar rahat kullanmak istiyorsanız Azure Storage Explorer aracını aşağıdaki adresten indirip kurmanızı öneririm. Bu araç Azure Storageler ile ilgili çeşitli konularda işinizi kolaylaştıracak ücretsiz bir araçtır.


Yedekleri aldık. Peki, yedekten dönme işlemini nasıl yapacağız?

Bunun için ekstra bir çalışma yapmaya gerek yok. Yedek aldığımız klasördeki metadata dosyasında tüm bilgiler mevcut. Tek yapmamız gereken aşağıdaki şekilde bu dosyanın yolunu belirtmek:

--yedekten dönmek için konfigurasyon dosyasını kullanıyoruz.
USE [master]
RESTORE DATABASE [Veritabani_2005-2012]
FROM  DISK = N'C:\AzureYedekler\2005_2012\Veritabani_2005-2012.bak'
WITH  REPLACE

Eğer yedek aldığınız klasördeki metadata dosyası kaybolursa Azure storagedeki metadata dosyasını aynı klasöre indirerek yedeği kullanabilirsiniz. Eğer klasör silindiyse o zaman Backup to Azure aracını kullanarak önceki ile aynı özellikte bir kural oluşturup metadata dosyasını bu klasöre indirebilirsiniz.

Microsoft Backup to Windows Azure aracı SQL Server 2014 versiyonunda kullanılabilen URL Backup ile buluta yedek alabilme, Backup Encryption ve SQL Server 2008 ile birlikte gelen Compression özelliklerini SQL Server 2005 ve sonraki versiyonlardan alınan yedekler için de mümkün kılıyor. Kullanımı oldukça basit; kuralları tanımla ve servisi açık tut.

Bu konu ilginizi çektiyse “SQL Server 2014 Yenilikleri - 1 (Hybrid Cloud)” adındaki yazımıza da bir göz atmak isteyebilirsiniz.


15 Aralık 2013 Pazar

SQL Server 2014 Yenilikleri - 1 (Hybrid Cloud)

CTP2 versiyonu yayında olan SQL Server 2014 ile birlikte çeşitli konularda birçok yenilik geldi. Microsoft geçtiğimiz günlerde yenilikleri duyurma hızını arttırabilmek amacıyla US’e davet ettiği MCT’lerle Train-the-Trainer eğitimlerini de düzenledi. Bu yenilikler son halini almamış olsa da artık yetenek olarak olgunlaştı ve üzerinde tartışılabilir, paylaşılabilir hale geldi diyebiliriz. Ürün henüz piyasaya sürülmemiş olsa da yenilikleri takip etmek isteyeceğinizi düşündüm. İleride tamamı üzerinde yazılarımın olacağı birkaç başlıkta bunları inceleyeceğiz. Bu bölümde ise Hybrid Cloud başlığına yer veriyor olacağım.

Son zamanlarda bulut(Cloud) ile ilgili çalışmalar ciddi manada hız kazandı ve birçok firma bu konuda çözümler üretmeye karar verdi. Firmalar müşterilerinin çeşitli alt başlıklardaki teknoloji ihtiyaçlarını kendi veri merkezlerinde(Datacenter) çözümleyip hizmet olarak sunmakta. Bu durumun getirileri genel olarak şöyle; kullandığın kadar ödeyebilme, donanım yatırımıyla ilgilenme ihtiyacının tamamen ortadan kalkması(güncelleme, bakım, yedekleme, uzman vs.), sistemin sürekli ayakta kalabilmesi için ve yüksek erişilebilirlik için ekstra çaba sarf etmeye gerek kalmaması(donanım, yazılım, uzman vs.).

Microsoft’un bu kapsamdaki Windows Azure olarak bilinen çözümü son güncellemelerle oldukça yetenekli hale geldi. Windows Azure’u test etmek isterseniz http://www.windowsazure.com/en-us/  sitesi üzerinden bir deneme hesabı açabilirsiniz.


Windows Azure’un uygulama, altyapı ve veri konusundaki hizmetleri dünya üzerine dağılmış çeşitli datacenterlar sayesinde sanal makinelerden web sitelerine, karmaşık ve uzun işlemleri hızla yapan süper bilgisayarlardan kolay ve sürekli erişilebilen veritabanlarına, sınırsız storageden mobil servicelere kadar birçok ihtiyaca cevap verebilmektedir. 


Windows Azure hakkında eğitici dokümanların sayısı giderek artmakta ve daha da açıklayıcı hale gelmekte. Bu sebeple direk SQL Server tarafını ilgilendiren kısma, yani Data Services (Veri Hizmetleri) kısmına geçebiliriz. Bu durumda şöyle bir manzara ile karşılaşıyoruz:


Bu görünümdeki henüz gelişmekte olan Big Data ve NoSQL ile ilgili HDInsight, Tables çözümlerini başka bir yazımızda incelemek üzere geride bırakalım istiyorum.
Relational kısımdaki SQL Database başlığı SQL Azure’u işaret etmektedir. Hem bir web arayüzü(Silverlight) ile hem de SSMS ile bağlanılıp yönetilebilen SQL Azure hizmeti ilk haline göre yetenek olarak biraz daha gelişti. Fakat asıl yenilikler Blob Storage ve SQL Server in a VM hizmetleri olduğu için bu yazımızda odaklanacağımız kısımlar da bunlar olacak.

Şimdi gelelim Hybrid Cloud başlığı altındaki yeniliklere;
1-      1-Blob Storage :
a.       Yedekleme Çözümü 
Bir storage hizmetidir. Basitçe bir disk kiralamış oluyoruz. Her hangi bir veriyi; resim, müzik, video, backup, database dosyaları vs. klasörleyerek tutabiliyoruz. Konsept biraz farklı olduğu için Azuredaki bir Storage üzerinde klasörler, Container lar ile temsil edilmektedir.
https://manage.windowsazure.com/ üzerinden Windows Azure’a bağlandıktan sonra soldaki STORAGE menüsü yardımıyla bulutdepo adında bir alanı birkaç dakika içerisinde oluşturabiliyoruz. Oluşturma esnasında storagein replicate olup olmayacağı ve dünya üzerinde hangi datacenter grubunda konumlanacağını belirtebiliyoruz.


Kısa sürede oluşan Storage üzerinde monitörleme yapabilir, yazma okuma ve replikasyon gibi ayarları değiştirebilirsiniz. Storage içerisinde policyler yardımıyla erişim seviyesini, süresini vs. yönetebileceğiniz CONTAINER’lar oluşturarak yüklemek istediğiniz nesneleri klasörleyebilirsiniz. Ben de örneğimde bulutdepo storagei altında http://bulutdepo.blob.core.windows.net/yedekler URLi ile erişebileceğim yedekler isimli bir Container oluşturdum.


Containerlara silverlight arayüzünden bir şey upload edilemiyor fakat download edilebiliyor. Eğer bu storagei bir skydrive mantığında kullanmak isterseniz veya storagee erişim sınırlamaları getirmek için kolayca policyler tanımlamak isterseniz Azure Storage Explorer uygulamasını şuradan http://azurestorageexplorer.codeplex.com/ indirip kurmanız işinizi kolaylaştırır. Aksi halde birçok ihtiyaca binaen geliştirilen yaklaşık 5mblık bu küçük uygulamanın yaptıklarını kodlarla yapmanız gerekecek.

Azure Storage Explorer’ı açtıktan sonra Add Account butonu ile Storage Accountuzu ekleyip solda containerları listeleyebilir, dosya upload-download edebilir bunları ön izleyebilirsiniz.


Ayrıca bu uygulama yardımıyla storagee kısıtlı erişim sağlanabilmesi için policyler(Shared Access Policies) oluşturabilir yazma, okuma ve silme haklarını verip-engelleyebilir hatta bunun için bir tarih aralığı belirleyebilirsiniz.


Bu durumda birazdan geleceğimiz kısımla ilgili olarak Credential oluştururken veya storagee bağlanılmak istenen herhangi bir durumda Access Key veya Storage Account Key alanında yukarıdaki resimde görünen Generate Signature ile üretilmiş URLdeki soru işaretinin sağında kalan kısım kullanılmalıdır.

Peki, storagelere bağlanan daha entegre bir araç yok mu?

Var. SSMS storage bağlanabiliyor ve containerlar içerisindeki dosyaları listeleyebiliyor. Ancak CTP2 versiyonundayız ve şimdilik burada dosyalar için upload-download veya ön izleme gibi bir özellik yok sadece silme ve listeleme özelliği var.


Peki, Azure Storage hangi amaçlar için kullanılabilir?

En başta Skydrive mantığında dosya deposu olarak kullanabiliriz. Veritabanı bakış açısıyla olaya yaklaşırsak. SQL Server için disk ne ise Azure Storagede o diyebiliriz. Yani üzerine backuplar alabilir, data ve log dosyalarını tutabiliriz.

Azure Storage DR(Disaster Recovery) çerçevesinde güvenli, yedekli, uzak ve sürekli erişilebilir kopyalar gereksinimine oldukça mantıklı bir cevap olarak duruyor. Buraya yedeklemenin rahatça yapılabilmesi için klasik backup seçeneklerine ek olarak URL Backup opsiyonu da geldi. URL backup opsiyonunu tercih ettiğinizde ise dilerseniz Encryption Backup seçeneğini kullanabilirsiniz. Bu sayade backuplarınızı AES 128, AES 192, AES 256 ve Triple DES algoritmaları ile şifreleyerek bulutta güven altında tutabilirsiniz.

Azure Storage üzerine backup nasıl alınır?

Öncelikle bir Credential oluşturmamız gerekiyor. Credential SQL Server’ın dışındaki bir kaynağa erişmesi için kullandığı bir güvenlik nesnesidir.

Azure Storage için Credential oluşturmanın birkaç yolu var. Bu işi backup öncesinde yapmak istiyorsak SQL script veya klasik olarak SSMS’daki Object Explorer penceresinden Security/Credentials/New Credential … seçeneğini kullanarak ara yüz yardımıyla yapabiliriz. Backup için gereken ayarları yaptığımız kısımda oluşturmak istiyorsak şu linkten https://manage.windowsazure.com/publishsettings/Index?client=vs&SchemaVersion=1.0 indireceğimiz publishsettings uzantılı dosyayı kullanabiliriz. Bu dosyayı Get-AzurePublishSettingsFile PowerShell komutu ile de çağırıp indirebiliriz.

Script ve arayüz ile şu şekilde credential oluşturulabilir.


(Not: Credential oluştururken Credentail Name kısmına https ile başlayacak şekilde container urlinin verilmesi policy ile erişim gerektiren durumlarda zorunludur.)
Credential oluşturduktan sonra şu şekilde script veya arayüz yardımıyla backuplar alınarak Azure Storagee gönderilebilir.


İstenirse backup alınırken arayüzdeki SQL Credential karşısında bulunan Create… butonu kullanılarak indirilen publishsetting dosyası yardımıyla da credential bilgisi üretilebilir.


Yeni URL backup özelliği ile backup alma işleminin otomatize edilebilmesi ve yönetilebilmesi için msdb veritabanı altında bulabileceğiniz smart_admin ile başlayan yeni fonksiyon ve procedureler işlerinizi oldukça kolaylaştıracaktır.

Eğer Azure Storagei DR site olarak kabul ettiyseniz ve SQL Server 2014 öncesi backuplarınızı da burada tutmak isterseniz az önce bahsi geçen Azure Storage Explorer uygulamasındaki upload seçeneğini kullanabileceğiniz gibi http://www.microsoft.com/en-us/download/details.aspx?id=40740 linkinden indirebileceğiniz bu iş için yapılmış Windows Azure Tools isimli aracı da kullanabilirsiniz. Basitçe neredeki backupları nereye alacağını belirten bir kural ekleyerek alınan backupların yakalanıp Azure Storagee upload edilmesini sağlayabilirsiniz.

Peki, restore işlemini nasıl gerçekleştireceğiz?

Aşağıdaki gibi script veya arayüz yardımıyla restore işlemini gerçekleştirebilirsiniz.


b.       Veritabanı Lokasyonu
Azure Storagei backup/restore lokasyonu dışında data ve log dosyalarını tutabileceğimiz bir alan olarak da kullanabiliriz. Bu durumda SQL Server servisi bulut dışında çalışırken data ve log dosyaları bulutta yüksek erişim konusunda daha güvenli bir yerde durabilir. Data ve Log dosyalarının bulutta durmasının bilgi güvenliği bakımından riskli olduğunu düşünüyorsanız veritabanınızı TDE(Transparent Data Encryption) ile şifreleyip anahtarın sizde şifreli dosyaların bulutta durmasını sağlayabilirsiniz.


Bulutta data ve log dosyası create etmek için şu şekilde;


Var olan dosyaları servera attach etmek için şu şekilde;


Kodlama yapabilirsiniz veya klasik ara yüzleri kullanabilirsiniz. Tabi ki bunu yapabilmek için öncelikle policy tabanlı erişimi sağlayacak bir Credential oluşturmanız gerekir.

Policy oluşturmak için Azure Storage Explorer aracındaki Security butonunu kullanabiliriz. Öncelikle Shared Access Policies tabında bir policy tanımlayıp sonra Shared Access Signatures tabında bir Signature üretmemiz gerekir.


Hemen sonrasında buradaki bilgileri kullanarak yukarıdaki script ile bir Credential oluşturabiliriz. Credentialı başarıyla oluşturduğumuzda data ve log dosyalarımızı bahsettiğimiz arayüz veya scriptleri kullanarak bulutta tutabiliriz.

Hybrid Cloud başlığı altında inceleyeceğimiz bir diğer yenilik ise buluttaki bir sanal makine içerisinde konumlayabileceğimiz SQL Server kurulumu ile çalışabilme özelliğidir.

1-      2-SQL Server in a Windows Azure VM:
Windows Azure hizmetlerinden birisi de dakikalar içerisinde bir sanal makine kurulumunu edinebilmeniz ve bu makineye Remote Desktop ile erişip yönetebilmeniz ile ilgili.

CENTOS’tan ORACLE, SUSE’dan MS SQL Server’a farklı VM kurulumlarını bünyesinde barındıran Windows Azure erişilebilirlik, donanım, bakım gibi konuları üstlenmiş ve garanti altına almıştır.


Ancak sonuç itibari ile oluşan şey bir sanal makinedir. Bu noktada bizim ilgimizi çeken kısım içerisine kurduğumuz SQL Server ile yapabileceklerimiz oluyor.

a.       a-Cloud DR

VM içerisindeki bu SQL Server’ı On-Primeses(bulutta olmayan) serverlarımızla bir arada High Availability kapsamına alabiliriz. Yani read-write komutlarını gönderildiği primary sunucu localde, replica bulut üzerinde bulunabilir veya tam tersi kurulum gerçekleştirilebilir.


Bu bağlamda SQL Server 2014’ün AlwaysOn konusundaki yeniliklerinden birisi de bulutta bir replica oluşturabilmektir.


a.       b-Database deploye to SQL Server in a VM
Eğer lokaldeki bir veritabanını artık bulutta barındırdığınız bir VM içerisindeki SQL Server’a deploy etmek istiyorsanız SSMS üzerinde entegre bir çözüm de mevcut. Aşağıdaki gibi Task/Deploy Database to a Windows Azure VM… seçeneği ile deploy işlemini gerçekleştirebilirsiniz.


Bunun için Windows Azure üzerinde port açmalı ve VM’in Cloud Adapter servisinin açık olduğundan emin olmalısınız. Test etmek isteyenler CTP2 versiyonunun bu konuyu içeren hotfixini uygulamaları gerekecek. Hotfixi şu linkten temin edebilirsiniz http://support.microsoft.com/kb/2907705/en-us.

Cloud ile ilgili olarak Big Data konusu haricinde veritabanı bakış acısı ile neredeyse gelen tüm yeniliklere değinmiş olduk.

Bulut konusunda verdiğim eğitimlerdeki katılımcıların ortak fikri ileride bu teknolojinin çok daha yaygın olacağı yönünde olsa da günümüzde bazı çekinceleri olduğunu gizlemiyorlar. Bu çekincelerden en çok duyduklarım internet alt yapısı ve yurt dışına veri çıkarma konusundaki kanunlar olmuştur. Belki de bu çekinceler size hitap etmiyordur ve bulut tam aradığınız ucuz bir çözümdür.

Big Data konusunda tekrar dönmek kaydıyla şimdilik bulut ile ilgili olarak bu kadarı yeterli. Diğer SQL Server 2014 yenilikleri başlıklarına da yakın zamanda bir göz atmış olacağız.

Faydalı olması dileğiyle,