Uygulamalı Backup Adımları

Bu bölümde sizlere SQL Server veritabanı yedeği alma işlem adımları ve parametrelerin açıklamalarından bahsedeceğim. Bu yazıda bahsettiğim konu başlıkları aşağıdaki gibidir.

  • SSMS ile Backup Alma
  • TSQL ile Backup Alma

SSMS Ile Backup Alma :

  1. Yedeğini almak istediğimiz veritabanına sağ tıklayalım Tasks-> Back Up diyelim

2. Bizi Backup General ekranı karşıladı, buradaki parametreleri bir inceleyelim.

Source kısmındaki parametreler:

Database : Burada hangi veritabanımızın yedeğini almak istiyorsak onu seçiyoruz.

Recovery Model : Burada yedeğinin alınmasını seçtiğimiz veritabanının Recovery Model bilgisi mevcut. Recovery model ile ilgili daha ayrıntılı yazıma buradan ulaşabilirsiniz.

Backup Type : Burada alacağımız yedek türünü seçiyoruz. Yedekleme türleri hakkında daha detaylı yazıya buradan ulaşabilirsiniz.

Copy Only Backup : Veritabanı için Log backup aldığımızda her backup bir lsn zincirine dahil edilir ve birbirini takip eder bu nedenle restore işleminde herhangibir Transaction Log backupı eksik bırakma şansımız yoktur. Çünkü sql server bize lsn zincirinde eksik bir backup olduğu için restore işlemini gerçekleştiremediğini belirtir. bu yüzden eğer acil bir Log veya Full backup ihtiyacımız olursa ve var olan lsn zincirine etki etmek istemiyorsak Copy-only backup alırız.

NOT: Eğer biz test amaçlı bir log backup alıp sonrasında silmeyi düşünüyorsak bu seçeneği seçeriz, aksi durumda arada bir trs yedek olmadığında lsn zinciri bozulduğundan restore ederken hata alırız. Bu gibi durumlarda bu seçenek işaretlenir.

Backup component : Veritabanımızda nelerin backupını almak istediğimizi belirtiyoruz yani bu demek oluyor ki veritabanı için backup alırken bütün veritabanı yedeği dışında istersek oluşturduğumuz File ve Filegrouplarının da backupını alabiliriz.

Destination : Bura yedeğin nereye alınacağını belirttiğimiz kısım.

Aşağıda en son alınan yedek bilgisi geldi, eğer bu şekilde alırsak yedeğimizi, ilgili yedeğin üzerine yazarak backup alma işlemini gerçekleştirecektir.

Add : Burada yedeğin nereye alınmasını istiyorsak ayarlamasını yaptığımız kısım. Birden fazla lokasyona da yedek alabilmekteyiz.

Remove : Seçtiğimiz lokasyona almasını istemediğimizde kaldırmak için kullanılır.

Contents : En son alınan yedeğe dair bilgileri görebilmekteyiz

3. Burada yeni lokasyona yedek almak için ADD diyeceğiz.

4. Yedeğin alınmasını istediğimiz lokasyon ve backup dosyası ismini giriyoruz. Ok diyoruz.

General kısmındaki ayarlamalarımız tamamlandı.

5. Media Options kısmına gelelim ve ihtiyaca göre ayarlamalarımızı yapalım.

Owerwrite Media kısmındaki parametreleri açıklayalım:

Append to exist the existing backup set : seçeneği seçili olduğunda aldığımız backup daha önce aldığımız yedeğin üstüne yazılır yani bir Media Set oluşturur.

  • Dezavantaj : Daha önce almış olduğumuz yedek 2 GB boyutunda ise ve daha sonra veritabanı boyutu 2.5 GB olduğunda yedek aldığımızda yenibackup dosyasının boyutu 2.5 olacağına 4.5 GB olacaktır.

Overwrite all existing backup sets : Veritabanı dosyamızın şuanki boyutunda olmasını istiyorsak (2.5 GB). Böylece aldığımız bu yedek önceki yedeği ezecek ve güncel boyutta bir backup dosyası oluşacaktır.

Check media set name and backup set expiration :

Reliability kısmındaki parametreleri açıklayalım : Backup alınırken ya da alındıktan sonra yapılması istenen durumları belirlediğimiz kısım. 

Verify backup when finished : Backup işlemi bittiğinde bu bitimi doğrulamak için kullanılır. 

Perform checksum before writing to media : Backup alınmadan önce hata kontrolü yapılmasını sağlar. 

Continue on error : Backup alımında hata olsa bile işlemi bitirmesi istenir

6. Backup Options kısmına gelelim ve ihtiyaca göre ayarlamalarımızı yapalım.


Name: Aldığımız yedeğe isim vermek için
Description : burada aldığımız yedeğe açıklama ekleyebilmekteyiz.

Backup set will expire kısmındaki parametreleri açıklayalım

After seçeneğinde : bir media setimiz var ise ve veritabanı yedeklerimiz bir öncekini ezmeden üzerine ekleniyorsa burada belirttiğimiz tarih geldiği taktirde artık üstüne ekleme daha önce bu media set içine alınan tüm backupları ezip tek backup olarak oluştur demek anlamına gelir.

  • 0 şeklinde bıraktığımızda herhangi bir sınır belirtmemiş oluruz.

On : Burada da bir tarih şeklinde de belirtebilmekteyiz.

Compression kısmındaki parametreleri açıklayalım: Burada alacağımız yedeğin sıkıştırılma ayarlarını yapabildiğimiz kısım.

Use the default server setting : Server özelliklerinde bu özellik nasıl yapılandırılmışsa o şekilde yapar. Eğer sıkıştırılma aktifse aldığımız yedeği sıkıştırarak alır, aktif değilse sıkıştırmadan alır.

Compress backup : Yedeğin sıkıştırılarak alınmasını istiyorsak.

Do not compress backup : Yedeğin sıkıştırılmadan alınmasını istiyorsak.

Sıkıştırma özelliği hakkında daha ayrıntılı bilgiye buradaki yazımdan ulaşabilirsiniz.

Not: Text ağırlıklı datalar ile çalışıyorsanız, %90 oranında bir sıkıştırmayla ile hem hızlı backup alma hem de backup dosyalarını daha az yer tutmasını sağlayabilirsiniz.

Eveet parametrelerin açıklamalarını yaptık, şimdi ihtiyacımıza göre yaptıktan sonra OK diyerek veritabanımızın yedeğini alabiliriz. Burada her zaman Script diyerek işlemleri yapmakta fayda var.

TSQL İLE YEDEK ALMA

  • FULL BACKUP :
BACKUP DATABASE TESTDB TO DISK='F:\BACKUP\DENEME.BAK';
  • DIFFERANTIAL BACKUP :
BACKUP DATABASE TESTDB
TO DISK='F:\BACKUP\DENEME_Dif.BAK'
 WITH DIFFERENTIAL;
  • LOG BACKUP :
BACKUP LOG TESTDB
TO DISK='C:\Backups\TESTDB\TESTDB3.TRN'
  • Bir sonraki alınan yedeğin, var olan dosyanın üstüne yazması için şu ifade kullanılabilir.
BACKUP DATABASE TESTDB
TO DISK='C:\Backups\TESTDB\TESTDB.BAK'
WITH INIT;

NOT: Veritabanı için aldığımız backup ın saklanacağı yerde aynı isimli bir başka backup varsa, aksi belirtilmedikçe SQL Server yeni aldığı backupı eski olan backupa ekler. Eğer aldığımız backupları otomatik olarak ve aynı isimle aynı klasöre alıyorsak bir süre sonra disk dolacak ve backup alınıken hata oluşacaktır. Bunu engellemek için ya her backup alışımızda aldığımız backupın ismini değiştirmeliyiz veya SQL Server’a WITH INIT seçeneği ile eğer backup varsa onun üstüne yazması belirtilir.

  • Veritabanının birden fazla dosyaya yazdırılması için
BACKUP DATABASE TESTDB
TO DISK='C:\Backups\TESTDB\TESTDB.BAK',
DISK='D:\Backups\TESTDB\TESTDB2.BAK'
WITH DIFFERENTIAL, INIT

Not: Veritabanının birden fazla parçaya ayrılması ve bu parçaların birden fazla fiziksel disk üzerinde saklanarak I/O performansı ve hızlı işlem için tercih edilebilecek bir yöntemdir.Ancak bu yedeklenen dosyalardan biri bile bozulsa geri okunamayacaktır.

  • Mirror, hazırlanan yedeğin bir kopyasının daha oluşturulması için kullanılır. Bir yedek bozulursa, Mirror ile alınan diğer yedek kullanılabilir.
BACKUP DATABASE TESTDB
TO DISK='C:\Backups\TESTDB\TESTDB4.BAK'
MIRROR TO DISK = 'C:\Backups\TESTDB\TESTDB_MIRROR.BAK'
MIRROR TO DISK = 'D:\Backups\TESTDB\TESTDB_MIRROR.BAK'
WITH FORMAT, DIFFERANTIAL
  • Veritabanı yedekleme işleminin yüzdesel olarak tamamlanma oranının gösterilmesini sağlamak için
BACKUP DATABASE TESTDB
TO DISK='C:\Backups\TESTDB\TESTDB2.BAK'
WITH STATS=2;

NOT: SSMS sorgu ekranının Messages kısmında, varsayılan olarak her tamamlanan %10 işlem için bildirim yapılır.

  • Bir veritabanı yedeği dosyası hakkında bilgi almak gerekebilir. Yedek içerisinde bulunan, veritabanına ait dosya adları, uzantıları ve boyutu gibi bilgileri elde etmek için
RESTORE FILELISTONLY
FROM DISK = 'C:\Backups\TESTDB\TESTDB4.BAK';

Kişisel Web sayfama hoş geldiniz..