Sql Server Veri Tabanı Yedek Alma

Fırat Boyan 24 Ekim 2016 0
Sql Server Veri Tabanı Yedek Alma
  • Sumo

 

Sql Server Management Studio İle Database Backup – Veritabanı Yedek Alma

Bu makalemde SQL Server Management Studio ile Database Backup (veritabanı yedek) alma ve alınan Backup (Yedek ) dosyasını Restore (Geri Yükleme) işlemlerinin nasıl yapıldığından behsediyor olacağım. SQL Server üzerindeki database (veritabanı) Backup (Yedek) işlemi, Database üzerinde yer alan tüm verilerin kaybolma ve bozulma riskine karşı bir yedeğinin ya da başka bir deyişle bir kopyasının saklanmasıdır. Daha sonra bu Backup verileri, ihtiyaç duyulduğunda, database restore (veritabanı geri yükleme) yapılarak olası veri kayıplarının önüne geçmiş oluruz.

SQL Server Management Studio ile database (veritabanı) Backup (Yedek) alma işlemine geçmeden önce SQL Server Backup seçeneklerini bilmek gerekir. SQL Server üzerinde 3 farklı backup çeşiti bulunmaktadır.

**Full Backup: Adından anlaşılacağı üzere database (veritabanı) Backup (Yedek) anı itibariyle Database komple Backup (Yedek) içine kopyalanır. Full Backup dosyası ile başka bir şeye ihtiyaç duymadan Backup (Yedek) alındığı tarihe veritabanı Restore (Geri Yükleme) işlemi yapılabilir.

**Differential Backup: Çok fazla verinin bulunduğu, boyutları yüksek ve sürekli olarak data işlenen Database’in sürekli olarka Full backup ile Backup işlemi yapmak, hem uzun işlem süresi hem de gereksiz disk kullanımlarına neden olur. Böyle durumlarda sadece değişen kısımların yedeğinin alınması Differential Backup seçeneği ile yapabilirsiniz.

**Transaction Log Backup: Transaction, ilgili Database üzerinde yapılan her işlemin bilgilerinin tutulduğu log dosyasıdır. Yedekleme sadece bu kayıtları kapsar.

RECOVERY MODEL:
SQL Server Management Studio database (veritabanı) Backup (Yedek) almadan önce Recovery Model ayarlamak gerekmektedir. Recovery Model ayarlamak zorunda olmamızın sebebi; Sql server database backup alırken örneğin;

Full Recovery Model ayarken mdf + ldf database kurtaracağım, log doayasını çok detaylı tut demektir. Backup alırken bu şekilde backup alır. Bunun avantajı, recovery ederken detaylarda istediğim saate geri dönebilirim.

Bulked-logged Recovery Model ayarken mdf + ldf + Transaction log kaydını da tutar ve backup alırken bu şekilde backup alır. Ancak Transaction log kaydı az detaylıdır. Bunun dezavantajı, recovery ederken detaylarda istediğim saate geri dönemiyor olmamdır.

Simple Recovery Model ayarken sadece mdf kaydı tutar, ldf yoktur + Transaction log kaydını çok çok az tutar. Backup alırken Transaction log backup alınamaz. Backup alırken bu şekilde backup alır.

Özetle Recovery Model kullanmanın sebebi, recover ederken hangi materyali (örn. mdf + ldf) kullanacaksın demektir. Bu nedenle öncelikle Recovery Model yapılandırmam gereklidir.

Recovery Model yapılandırmak için Database üzerinde sağ tıklanır ve Properties seçeneği seçilir.

SQL Server Backup

Database properties pencesi altında Options sekmesine tıklanır. Options sekmesinde Recovery model ayarlaması, yukarıda belirttiğim bilgilere göre yapılandırılır.

SQL Server Backup

DATABASE BACKUP–
Database Backup iki şekilde alınabilir.

1- .bak dosyası ile SQL Server Database Bakcup
2- Backup Device ile SQL Server Database Bakcup

1- .bak dosyası ile SQL Server Database Bakcup Alma:
.bak dosyası ile HDD üzerine backup alındığı zaman, backup detaylarını göremezsiniz. Yani aldığım backup detaylarında ne aldığım, ne zaman aldığım, ne aldığım (full backup, Differential backup ya da Transaction Log backup) gibi bilgileri görememem. Bu, .bak dosyası ile database yedek alma işleminin dezavantajıdır.

.bak dosyası ile SQL Server Database Bakcup almak için;
1.1- SQL Server Management Studio‘da Database üzerinde sağ tuş Tasks > Backup seçeneğine tıklıyorum.

SQL Server Backup

Back Up Database – DATABASE001 ekranı açılıyor. Bu ekranda üç bölüm bulunmaktadır.

a- Source
b- Backup Component
c- Destination bölümleri.

Source Bölümü Ayarları:
Database: SQL Server üzerinde hangi Database üzerinde Backup almak istiyorsak onu seçebilirsiniz.

Recovery Model: Recovery Model; yukarıda detaylıca belirttiğim gibi, mdf, ldf ve transaction log‘larının nasıl kaydedileceği ile ilgili ayarları içerir. SQL Server üzerinde üç farklı recovery model seçeneği bulunduğundan bahsetmiştim. Hatırlayacak olursak bunlar; Full, Simple ve Bulk Logged seçenekleridir.

NOT: Şahsi tavsiyem; veritabanı yedeğinizi Transaction Log Backup olarak alacaksınız, recovery model’inizi full tutmanız yönünde olacaktır.

Backup Type: Backup türlerine konunun başında değinmiştim. Full backup almak istediğimizi belirterek ilerleyelim.

**Full Backup: Adından anlaşılacağı üzere Backup anı itibariyle Database’im tüm Backup bilgisi içine kopyalanır. Full Backup dosyaıi ile başka bir şeye ihtiyaç duymadan Backup alındığı tarihe ,recovery model full yapıldıysa, veritabanı Restore işlemi yapılabilir.

**Differential Backup: Çok fazla verinin bulunduğu, boyutları yüksek ve sürekli olarak data işlenen Database’i sürekli olarka Full backup ile Backup işlemi yapmak, hem uzun işlem süresi hem de gereksiz disk kullanımlarına neden olur. Böyle durumlarda sadece değişen kısımların yedeğinin alınmasını Differential Backup seçeneği ile yapabilirsiniz.

**Transaction Log Backup: Transaction, ilgili Database üzerinde yapılan her işlemin bilgilerinin tutulduğu log dosyasıdır. Yedekleme sadece bu kayıtları kapsar.

*Copy only Backup: Bu Backup alma işleminin Backup zincirine dahil edilip edilmeyeceği ile ilgili ayardır.

*Backup Component: Tüm Database üzerinde Backup alınacak mı, yoksa Database ait bir File Group Backup (Yedek) mı alınmak istediğini belirliyoruz.

Backup Set Bölümü Ayarları:
*Name : Yedeğimize bir isim veriyoruz.

*Description: Backup ilgili bir açıklama eklemek isterseniz bu bölümü kullabilirsiniz.

*Backup set will expire: Alınan Backup hangi tarihe kadar geçerli olacağıyla ilgili ayarın yapıldığı bölümdür.

Destination Bölümü Ayarları:
*Backup To : Bu bölümde alınan Backup nerede saklanacağıyla ilgili ayarlar yapılandırabilirsiniz. Disk ve Tape seçenekleri ile, alt kısımda alınan yedeğin nereye kopyalanacağı ile ilgili dosya ayarlarını yapabilirsiniz. Disk seçeneği seçili iken Default olarak C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup dizini altina almaktadir. Dilerseniz Add diyerek bu dizini değiştirebilirsiniz.

Gerekli ayalari yapılandırdıktan sonra OK tuşuna bastığınızda eğer herhangi bir hata almadıysanız, database (veritabanı) Backup (Yedek) alma işlemini başlatıyorum.

SQL Server Backup

Aşağıdaki gibi database (veritabanı) Backup (Yedek) alma işlemi başarılı bir şekilde tamamlanmıştır.

SQL Server Backup

Database (veritabanı) Backup (Yedek) alma işleminden sonra Destination yolunu değiştirmediyseniz C:/Program Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/Backup dizi altında .bak uzantılı yedeğiniz hazır olacaktır.

SQL Server Backup

2- Backup Device ile SQL Server Database Bakcup Alma:
Backup Device ile backup alındığında, alınan backup’un detaylarını görebilirsiniz. Yani aldığım backup detaylarında ne aldığım, ne zaman aldığım, ne aldığım (full backup, Differential backup ya da Transaction Log backup) gibi bilgileri görebilme şansına sahibim. Bu, .bak dosyası ile database yedek alma işleminin dezavantajıdır.

Backup Device ile backup almak için;
2.1- Server Objects üzerinde sağ tıklıyorum ve sırası ile New > Backup Device… seçeneğine tıklıyorum.

SQL Server Backup

2.2- Backup Device penceresi açılacaktır. Backup Device penceresi altında oluşturmak istediğim Backup Device’a Device name alanında bir isim veriyorum. Verdiğim isim, FULL-DEVICE01. Destination alanında ise Backup Device’ın nereye kaydedileceğini belirliyorum. Normal şartlarda bu Path, sizin Data storage‘ınız (veri depolama biriminiz) olabilir.

SQL Server Backup

2.3- Görüldüğü gibi, Server Objects > Backup Devices altında oluşturmuş olduğum FULL-DEVICE01 adındaki Backup Device’ım oluşmuştur.

SQL Server Backup

Bir sonraki adımda ise, oluştuğum Backup Device üzerine database (veritabanı) Backup (Yedek) alma işlemi gerçekleştireceğim.

2.4- Full Backup: Adından anlaşılacağı üzere database (veritabanı) Backup (Yedek) anı itibariyle Database komple Backup (Yedek) içine kopyalanır. Full Backup dosyası ile başka bir şeye ihtiyaç duymadan Backup (Yedek) alındığı tarihe veritabanı Restore (Geri Yükleme ) işlemi yapılabilir. mdf + ldf yedeğini alacaktır.

Bunun için;

2.4.1- SQL Server Management Studio‘da Database üzerinde sağ tuş Tasks > Backup seçeneğine tıklıyorum.

2.4.2- Back Up Database – DATABASE001 ekranı açılıyor. Bu ekranda daha önce .bat dosyası ile database (veritabanı) Backup (Yedek) alma işleminde anlattığım gibi source bölümündeki ayarları yapılandırdıktan sonra Destination alanında Add… butonuna basıyorum.

2.4.3- Select Backup Destination penceresinde Backup device seçeneğini seçiyorum ve daha önceden oluşturduğum FULL- DEVICE001 ismindeki Full Backup Device’ımı seçerek OK butonuna basıyorum.

SQL Server Backup

NOT: Buradaki File name alanı da dikkatinizi çekmiş olmalı. .bat dosyası ile database (veritabanı) Backup (Yedek) alma işleminde .bat dosyasının path’i buradadır. Dilerseniz bunu da değiştirebilirsiniz.

2.4.4- Görüldüğü gibi Backup Device üzerine database (veritabanı) Backup (Yedek) alma işlemini gerçekleştirdim.

SQL Server Backup

2.4.5- Backup Device üzerine database (veritabanı) Backup (Yedek) aldıktan sonra, oluşturduğum FULL-DEVICE001 ismindeki Full Backup Device‘ım üzerinde sağ tıklayarak Properties seçeneğini seçiyorum.

SQL Server Backup

2.4.6- Back Up Database – DATABASE001 ekranı açılıyor. Bu pencerede Select a page altında bulunan Media Contents‘e tıkladığımızda, Backup sets: altında DEVICE001 ismindeki Full Backup Device‘ımın database (veritabanı) Backup (Yedek) detaylarını görüntülüyorum.

SQL Server Backup

Bu makalemde detaylı bir biçimde database (veritabanı) Backup (Yedek) alma işlemini anlatmaya çalıştım. Bir sonraki makalemde ise sql database (veritabanı) Recovery (Yedekten dönme) konusuna değiniyor olacağım.

Faydalı olması dileğiyle.

Yorum Bırak »