Fırat Boyan | MCT- Microsoft Certified Trainer.



Beğendiğiniz içerikleri sosyal medya üzerinden paylaşarak içeriklerin daha fazla kişi tarafından görüntülenmesine yardımcı olabilirsiniz.

category KATEGORİ: MS SQL Server 2014

category Fırat Boyan category 05.07.2016 category 0

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.

Bunlar;

Full Backup: Adından anlaşılacağı üzere Database (veritabanı) Backup (Yedek) anı itibariyle Database Full Backup (veri tabanı tam 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

Bilgi!: SQL Server Management Studio Database Backup (Veritabanı Yedek Alma) işleminden önce yapılması gereken ilk işlem, Recovery Model yapılandırmaktır.

Recovery Model yapılandırma zorunluluğumuzun sebebi; Sql server database backup (Sql Server Veritabanı Yedek Alma) işlemi yapılırken örneğin;

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

Örneğin Cuma gecesi bir bir Full Backup aldınız. Takip eden haftanın da Çarşamba gecesi bir Differential Backup aldınız ve 2 saatte bir de transaction log backup alıyorsunuz. Perşembe günü sabah 08:20’de bir sıkıntı oldu ve uygulamacılar sizden en son yedeği yüklemenizi istiyorlar. Yapmanız gereken sırasıyla; önce Full Backup’ı, sonra Differential Backup’ı, sonrasında ise Differential Backup’tan sonra alınan tüm Log Backup’ları sırayla Perşembe 08:00’e kadar restore etmeniz olacaktır. Bu şekilde son ana kadar dönebilirsiniz.

Full Recovery Model kullanıyorsanız, mutlaka transaction log backup almalısınız. Transcastion log backup almamanız durumunda, yapılan tüm işlemler log'landığı ve otomatik olarak silinmediği için bir süre sonra diskinizi dolduracaktır. Transaction Log Backup aldığınızda, log dosyasında kaydedilen bu log'lar silineceği için aşırı büyümesini engellenecektir.

Logların silinmesi işi gözünüzü korkutuyor olabilir. Bu silinme işlemi, endişe edilecek bir durum değildir. Aksine, yapılması zorunlu bir işlemdir. Aldığınız log backup’ta bu veriler mevcuttur. Herhangi bir sorun anında bu Log Backup dosyalarını kullanarak yukarda anlattığım gibi istediğiniz ana dönebilirsiniz. Hangi sıklıkla log backup alacağınız kurumunuzun politikasıyla alakalı olup, genellikle önemli ve büyük uygulamalarda 2 saatte bir alınmaktadır.

Bulked-logged Recovery Model
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.

Bulk Logged Recovery Model, Full Recovery Model’den farklı olarak SELECT INTO, BULK INSERT, BCP, CREATE INDEX gibi Bulk işlemlerin tamamı log'lanmaz ki Bulk işlemlerin yoğun olduğu veritabanlarında transaction log dosyasının çok büyümesi engellenmiş olacağı için, genelde tercih etmediğim bir recovery modeldir ama Transaction Log Backup alınabiliyor ancak, eğer son transaction log backup’ta bulk işlem ile ilgili bir kayıt varsa, restore yapılamıyor. Bulk Logged Recovery Mode’i sadece geçici olarak kullanabilirsiniz.

Örneğin Full Recovery Model’i kullanıyorsunuz ve büyük bir bulk işlem yığını yapacaksınız ve diskinizde yeterli alan da yer yoksa; Veritabanı Recovery Model'ini Bulk Logged yapıp, işleminiz bitince tekrar Full’e çekebilirsiniz.

Simple Recovery Model
sadece mdf kaydı tutar, ldf yoktur + Transaction log kaydını çok çok az tutar. Recovery Model simple olan veritabanları için transaction log backup alınmaz

Ö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 YAPILANDIRMA

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 (Veritabanı Yedekleme)

Recovery Model yapılandırmamızı tamamladıktan sonra, Database Backup (Veritabanı yedekleme) işlemlerine başlayabiliriz. Database Backup iki şekilde alınabilir.

1- .bak dosyası ile SQL Server Database Backup Alma:

2- Backup Device ile SQL Server Database Backup Alma:

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 (Full backup, Differential backup ya da Transaction Log backup) gibi bilgileri göremem. 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 General Tab'ında;

a- Source
b- Backup Component
c- Destination


bölümleri bulunmaktadır.

a- 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.

Full Backup: Adından anlaşılacağı üzere Backup anı itibariyle Database'im tüm Backup bilgisi içine kopyalanır. Full Backup dosyası 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.

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 ilerleyeceğim.

b- Backup Component Bölümü Ayarları:
Database: Tüm Database üzerinde Backup alınacaksa, bu seçenek seçilir.
Files and filegroups: Database'e ait bir File Group Backup (Yedek) alınacaksa, bu seçenek seçilir.

c- 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 varsayılan olarak C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup dizini altına almaktadır. Dilerseniz Add butonuna tıklayarak bu dizini değiştirebilirsiniz.


SQL Server Backup

Yine aynı ekranda Backup Options Tab'ında;

a- 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.

Gerekli ayaları 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şlatabilirsiniz. Ben veritabanı yedekleme işlemime başlıyorum.

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

SQL Server Backup

Database Backup (Veritabanı 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 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.

Full Backup Alma

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. Daha önceden de belirttiğim gibi; 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...
 


Her türlü görüş ve önerilerinizi aşağıdaki YORUM panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.

Beğendiğiniz içerikleri sosyal medya üzerinden paylaşarak içeriklerin daha fazla kişi tarafından görüntülenmesine yardımcı olabilirsiniz.


YAZAR HAKKINDA:

Adım Fırat Boyan. Sistem ve Network Mühendisiyim. 1985 Alanya doğumluyum. 2008 yılından beri İstanbul'da yaşıyorum. 15 yıldır Bilgi Teknolojileri sektöründeyim.
2003 yılında lise eğitimimden sonra bir bilgisayar firmasının teknik servisinde önce stajyer, sonrasında ise yine aynı firmada teknik servis teknisyeni olarak başladığım bilişim sektörü çalışma hayatıma, üniversite eğitimimi tamamladıktan sonra, çeşitli şirketlerin bilgi işlem departmanlarında Sistem Destek Uzmanı, IT Uzmanı, Sistem Yöneticisi ve Sistem ve Network Mühendisi olarak devam ettim ve çok çeşitli projelerde aktif rol alıp Sistem ve Network alanında ciddi deneyimler edinerek bilgime bilgi, tecrübeme tecrübe kattım.
MİRSİS Bilgi Teknolojileri'nde Sistem Uzmanı konumunda görev yapıyor, Uzun yıllardır da, Türkiye'nin en önde gelen bilişim eğitimleri merkezi olan, Network Akademi bünyesinde MCT-Microsoft Certified Trainer olarak Sistem ve Network uzmanlığı eğitimleri veriyor, işlerimden arta kalan zamanlarda da bireysel olarak kurumsal firmalara Bilgi Teknolojileri Danışmanlık Hizmetleri sunuyorum.

Sertifikalarım:
MCT (Microsoft Certified Trainer)- 2016/2017 - 2017/2018 - 2018/2019 - 2019/2020
MCPS (Microsoft Certified Professional)
MCSA (Microsoft Certified Solutions Associate)- Windows Server 2012
MCSE (Microsoft Certified Solutions Expert)- Server Infrastructure
MCSE (Microsoft Certified Solutions Expert)- Cloud Platform and Infrastructure 2017
MCSE (Microsoft Certified Solutions Expert)- Messaging
MCSE (Microsoft Certified Solutions Expert)- Productivity 2017
MS (Microsoft Specialist)- Designing and Deploying Microsoft Exchange Server 2016
MCSA (Microsoft Certified Solutions Associate)- Windows Server 2016
MCSE (Microsoft Certified Solutions Expert)- Cloud Platform and Infrastructure 2018
MCSE (Microsoft Certified Solutions Expert)- Productivity 2018




comment YORUMLAR
Bu makaleye henüz yorum yapılmadı!
İlk yorum yapan sen ol.


Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.


YORUM YAZ

   
  
(yorum onay bildirimi için gereklidir, yayınlanmaz.)
  750 Karakter yazabilirsiniz.


   
Güvenlik kodunu BÜYÜK harflerle giriniz.

* Yorumlar, onaylandıktan sonra yayınlanmaktadır.