Fırat Boyan | MCT- Microsoft Certified Trainer.



Beğendiğiniz içerikleri sosyal medya üzerinden paylaşarak makalelerin 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 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 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...
 


Beğendiğiniz içerikleri facebook, twitter, g+1 veya LinkedIn üzerinden paylaşarak makalelerin daha fazla kişi tarafından görüntülenmesine yardımcı olabilirsiniz.


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

YAZAR HAKKINDA:

Microsoft Certified Trainer-MCT.
Microsoft Certified Solution Expert-MCSE: Cloud Platorm and Infrastructure.

Adım Fırat Boyan. Bilgi Teknolojileri Sistem ve Ağ Mühendisiyim. 1985 Alanya doğumluyum. 2008 yılından beri İstanbul'da yaşıyorum. 15 yıldır Bilişim Teknolojileri sektöründeyim.

2003 yılında lise eğitimimden sonra bir bilgisayar teknik servisinde önce stajyer, sonrasında ise 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ı, IT Sistem Sorumlusu ve IT Sistem Yöneticisi 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.

JP. Morgan Chase Bank'ta Sistem Uzmanı ve Analisti olarak görev yapıyor, Türkiye’nin bilişim eğitimleri alanında hizmet veren Bilgi Tekolojileri Eğitim Merkezleri olan Bilge Adam’da MCT-Microsoft Certified Trainer (Microsoft Sertifikalı Eğitmen) ünvanı ile Sistem, Network ve Güvenlik eğitimleri veriyor, kurumsal firmalara Bilişim Teknolojileri Danışmanlık Hizmetleri sunuyorum.

Sertifikalarım:

MCT (Microsoft Certified Trainer)- 2016/2017 - 2017/2018 - 2018/2019
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.










BT EĞİTİM

Kurumsal eğitimler veren bir Microsoft Sertifikalı IT eğitmeniyim. IT Danışmanlık Hizmetleri verdiğim kurumlarda sürekli olarak, bilgi işlem personellerinin yaptığı işleri genelde ezbere ve neden yaptıklarını tam olarak kavrayamadan, bilmeden yaptıklarına şahit oldum. Böyle durumlarda da genelde firmalar, çalışanlarına IT eğitimleri aldırarak, daha profesyonel ve biliçli personeller istihdam etmektedirler. Sizler de kurumunuzda istihdam ettirdiğiniz bilgi işlem personellerinize IT Eğimleri aldırarak, kurumsal olarak yeni teknolojilere daha güçlü ve bilinçli geçişler yaparak ya da mevcut teknolojiler ile yapılandırılmış alt yapınızın bilgi işlem personelleriniz tarafından bilinçli ve profesyonel olarak ayakta tutmasını ve yürütmesini sağlayabilirsiniz.

Detaylar »





BT DANIŞMANLIK

Kendi bünyesinde IT departmanı isitihdam etmeyen ve bu hizmeti danışmanlık kapsamında outsource olarak alan firmalar, bilgisayar sistemlerinin bakımı ve onarımı için profesyonellerden bakım anlaşması kapsamında hizmet talep etmektedirler. Bilişim sektöründe danışmanlık önemli bir konudur. Bu nedenle, işinin ehli olmayan kişilere sisteminizi emanet edemezsiniz. Profesonel IT Uzmanı olarak; işletmelerin Kurumsal IT ihtiyaçlarına yönelik IT ekipmanlarının ve sistemlerinin kurulum,bakım ve konfigürasyonlarının yapılması hizmetlerini sunuyorum.

Detaylar »





İLETİŞİM

Taleplerinizi iletişim formu aracılığıyla direkt olarak bana iletebilirsiniz.
İletilerinize cevap verebilmem için mutlaka gerçeli bir e-posta adresi girin. Gönderdiğiniz iletiler en kısa sürede cevaplanacaktır. Girdiğiniz bilgiler asla üçüncü taraflarla paylaşılmaz. İletilerinizi iletişim formu aracılığı ile direkt olarak iletebileceğiniz gibi, kendi e-posta sunucunuzu kullanarak da mail adresime iletebilirsiniz.

İletişim Formu »