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.


Hiç yorum yok:

Yorum Gönder