SQL Server

SQL Server ile Microsoft Azure Yedek Alma- SQL Azure Backup

Günümüzde birçok şirketin kullandığı SQL Server veri tabanı, yedeklemeler için de önemli bir süreci kapsamaktadır. Azure ile olan bağlantısı yedeklemelerde büyük bir kolaylık ve güvenlik sağlamaktadır. Azure Backup ile şirket içi veya şirket dışında yerel yedekleme yerine; güvenilir, güvenli ve korumacı bir bulut tabanlı yedekleme çözümü sunmakta.

Sizlere bu yazımda SQL Server ürerinden Azure nasıl yedek gönderileceğini anlatacağım.

Azur Sürecini Yapılandırma

Önce Azure dan Depolama hesabı oluşturuyoruz.


Burada Abonelik Bilgisini seçiyoruz.
Kaynak Grubumuz var ise seçiyoruz, yoksa Yeni oluşturdan yeni kaynak grubu seçiyoruz.
Depolama Hesap adı ve konum bilgilerini girdikten sonra Oluştur Diyoruz.

Bu şekilde depolama hesabımız oluşmuş oluyor.

Depolama Hesabını seçip Blob’lar kısmından Kapsayıcı deyip bir Blob oluşturuyoruz.

SQL Server ile bağlantısını yapabilmek için Erişim Anahtarı Credential bilgisini almamız gerekiyor.

Key 1 kısmından erişim anahtarımızı kopyalıyoruz. Eğer depolama hesabımızda herhangi bir değişiklik yaparsak eşirim anahtarları otomatik olarak güncellenir. Güncel key bilgisini Sql de Credential bilgisini alter etmemiz gerekiyor.

SQL Server Backup Sürecini Yapılandırma

Azur tarafındaki süreci tamamladıktan sonra SQL Server tarafındaki süreci yapılandırmamız gerekiyor.

İlk olarak Azure dan aldığımız Credential bilgisini Sql e giriyoruz.

Security altında bu bölüme ulaşabiliriz.

New Credential ile bilgileri doldurup OK diyoruz.
Ya da aşağıdaki sql ile oluşturabilirsiniz
USE master
GO
CREATE CREDENTIAL SQLBackup
WITH IDENTITY=’Yedek’,
SECRET = ‘azure erişim anahtarı’
GO

Yedeklemeyi yapmak için;

Next diyoruz.

Bakım Planı adı ve açıklamamızı yazıp Next diyoruz.

Upload hızım yüksek olduğu için ben sürekli Full yedek alıyorum. İsterseniz Full ve Differential yedek alabilirsiniz.
Full Yedeği seçip Next diyoruz.

Bu menede birden fazla işlem olabilir. İlk hangi işlemin yapılmasını istiyorsanız Yukarı ya da aşağı taşıyabilirsiniz. Next diyoruz.

Database kısmından hangi db lerin yedeklerinin alınmasını istiyorsak seçiyoruz.
Back up to kısmını URL seçiyoruz. SQL Server 2014 üstü sürümlerde bunu plandan yapabiliyoruz. Alt sürümlerde ise sql job ile script çalıştırarak yapabiliriz.

Sql credential seçiyoruz, Blob bilgisini ve URL bilgisini ekliyoruz.

Options kısmında Set Backup Compression kısmından Compress backup seçiyoruz. Db mizi sıkıştırarak full yedeği azura gönderecektir.
Next Diyoruz

Finish ile tamamlıyoruz.

Eğer SQL sürümünüz buna izin vermiyor ise aşağıda verdiğim sql ile de bu planı hazırlayabilirsiniz.

DECLARE @BackupAdi VARCHAR (100) ;
DECLARE @BackupDosya VARCHAR (100) ;
DECLARE @Zaman NVARCHAR (20) ;
DECLARE @BackupYeri NVARCHAR (200) ;
DECLARE @DBAdi VARCHAR (200) ;
DECLARE @URL VARCHAR (MAX) ;
DECLARE @sqlCommand NVARCHAR (1000) ;
SET @DBAdi = ‘DBAdi’ ;
SET @Zaman
= REPLACE( CONVERT( VARCHAR, GETDATE( ), 101 ), ‘/’, ” ) + N’‘ + REPLACE( CONVERT( VARCHAR, GETDATE( ), 108 ), ‘:’, ” ) ; SET @BackupDosya = +REPLACE( REPLACE( @DBAdi, ‘[‘, ” ), ‘]’, ” ) + ‘_FULL‘ + @Zaman + ‘.BAK’ ;
SET @URL = ‘https://yedek.blob.core.windows.net/yedekblob/’ + @BackupDosya ;
SET @sqlCommand
= N’BACKUP DATABASE ‘ + @DBAdi + N’ TO URL = ”’ + @URL + N”’ WITH COMPRESSION, NOSKIP, NOFORMAT,CREDENTIAL = ‘
+ N”’SQLBackup”’ ;
EXEC (@sqlCommand) ;

Maintenance Plans Oluştuktan sonra çift tıklayıp plan ayarlarını açıyoruz.


Kırmızı çerçeve içile aldığım zaman ayarlarından birine çift tıklıyoruz.

Burada yedeklerimizin hangi zaman aralığında alınması gerektiğinin ayarını yapıyoruz.
Ben günlük her saatte yedek alınması için ayarladım. Siz istediğiniz şekilde ayarlayabilirsiniz.
OK diyoruz

Kaydet deyip kapatıyoruz.

Jobs kısmına geldiğimizde oluşturduğumuz plan görülecektir. Sağ clikc ile Start Job at Step dediğimizde job çalışacaktır ve her saat başı yedek alacaktır.

Blobu kontrol ettiğimizde yedeklerimiz otomatik olarak Azure düşecektir.
Burada ki bir diğer önemli konu ise Azure dan belirttiğimiz sürede Blob daki eski yedekleri silmek olacak.

Azure Blob daki Eski Yedekleri Silmek

Bunun için öncelikle Azure dan Otomasyon Hesaplarına gelip Ekle diyoruz.

Bilgileri doldurup oluştur diyoruz

Zamanlamalardan Zamanlama Ekle diyoruz. Daha önce eklediğim iki zamanlayıcıyı burada görebiliyoruz. Her iki blob umdaki bilgileri silmekte.

Zamanlama ekle diyoruz ve burada zamanlayıcı adını yazıp bir kez mi ya da yenilenen mi olduğunu seçiyoruz.

Oluşturduğumuz otomasyon hesabına bağlı Runbokk oluşturuyoruz. Daha önce oluşturduklarım ekranda.

Oluşturduğumuz Runbook seçip düzenle diyoruz.



Scripti yazıp kaydet ve Yayımla diyoruz. Sonrasında 12 saatte bir belirttiğim blob daki yedekleri silecektir. Böylece konteynerdaki yerimiz büyümeyecek ve maliyetlendirmesi de düşük olacaktır.

Böylelikle SQL Server DB yedeklerimizi saatlik olarak Microsoft Azure göndermiş olup ve 12 saatte bir eski yedekleri blob lardan silip yer ve maliyeti de düşürmüş olduk.

Umarım faydalı bir döküman olmuştur. Bir sonraki makalede görüşmek dileğiyle.

Mehmet Sucu

SQL Server, HBYS, Analist, Yazılım, Danışman, C#

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu