Anasayfa / Veritabanı/Sql / Sql Server Yedek Alma ve Yedeği Geri Yükleme
sql server yedek

Sql Server Yedek Alma ve Yedeği Geri Yükleme

Bu yazımda Sql Server Management Studio ile veritabanı yedeği alma (backup) ve alınan yedeği geri yükleme (restore) işlemlerini anlatacağım. Yedekleme işlemi, veritabanı üzerinde yer alan tüm verilerin kaybolma ve bozulma riskine karşı bir örneğinin saklanmasıdır. Daha sonra bu yedeklenen veriler, ihtiyaç duyulduğunda geri yüklenerek olası veri kayıpları önlenmiş olur.

Sql Server Management Studio ile Yedek Alma (Backup) İşlemi

Yedek alma işlemine geçmeden önce Sql Server Backup tiplerini bilmek gerekir. Sql Server üzerinde 3 farklı backup çeşiti bulunmaktadır.

  • Full Backup: Adından anlaşılacağı üzere yedeklenme anı itibariyle veritabanındaki herşey yedeğin içine kopyalanır. Elimizde bulunan bir full backup dosyası ile başka bir şeye ihtiyaç duymadan yedeğin alındığı tarihe veritabanı geri yüklenebilir.
  • Differential Backup: Çok fazla verinin bulunduğu büyük veritabanlarını sürekli full backup ile yedeklemek, 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ı işlemidir.
  • Transaction Log Backup: Transaction, ilgili veritabanında yapılan her işlemin bilgilerinin tutulduğu log dosyasıdır. Yedekleme sadece bu kayıtları kapsar.

Backup çeşitlerinden bahsettiğimize göre veritabanımızın yedeğini alma işlemine geçebiliriz. Veritabanımızın üzerinde sağ tıklayarak Tasks–>Backup seçeneğine tıklıyoruz.

sql server backup
Yedekleme İşlemini Başlatma

Yedek alma işlemiyle ilgili ayarların yapıldığı aşağıdaki pencere açılacak. Pencere 3 ana bölüme ayrılmış durumda Source-Backup Settings-Destination.

sqlserver backup settings
Yedekleme (Backup) Ayarları Penceresi

Source bölümü ayarları:

  • Database: Hangi veritabanının yedeğini almak istiyorsak onu seçiyoruz.
  • Recovery Model: Recovery Model, transaction loglarının nasıl kaydedileceği ile ilgili ayarlar içerir. Sql Server’da 3 farklı recovery model seçeneği bulunur. Bunlar Full, Simple ve Bulk Logged seçenekleridir. Bu bölümü yedekleme işlemi sırasında değiştirme olanağınız bulunmamaktadır.
  • Backup Type: Backup türlerine konunun başında değinmiştim. Full backup almak istediğimizi belirterek ilerleyelim.
  • Copy only Backup: Bu yedek alma işleminin backup zincirine dahil edilip edilmeyeceği ile ilgili ayardır.
  • Backup Component: Tüm veritabanının mı, yoksa veritabanına ait bir Filegruop yedeğinin mi alınmak istediğini belirliyoruz.

Backup Set bölümü ayarları:

  • Name: Yedeğimize bir isim veriyoruz.
  • Description: Yedekle ilgili bir açıklama eklemek isterseniz bu bölümü kullanabilirsiniz.
  • Backup set will expire: Yedeğin hangi tarihe kadar geçerli olacağıyla ilgili ayarın yapıldığı bölüm.

Destination bölümü ayarları:

  • Backup To: Bu kısımda yedeğin nerede saklanacağıyla ilgili ayarlar yer alıyor. Disk ve Tape seçenekleri ile, alt kısımda alınan yedeğin nereye kopyalanacağı ile ilgili dosya ayarlarını yapabilirsiniz.

Bu ayarlardan başka pencerenin solundaki Options kısmından daha detaylı ayarlamalar yapmanız da mümkün. O kısma değinmeden geçiyorum.

Ayarları yaptıktan sonra Ok tuşuna bastığınızda eğer hata meydana gelmemişse yedekleme işleminin başarılı olduğuna dair aşağıdaki gibi bir mesaj görüntülemeniz gerekiyor.

database backup completed
Yedekleme İşlemi Başarıyla Tamamlandı

Yedekleme işlemi sonrasında destination yolunu değiştirmediyseniz C:/Program Files/Microsoft SQL Server/MSSQL11.MSSQLSERVER/MSSQL/Backup dizi altında .bak uzantılı yedeğiniz hazır olacaktır.

Sql Server Management Studio ile Yedeğin Geri Yüklenmesi (Restore) İşlemi

Öncelikle şunu belirtmek istiyorum, elimizde mevcut olan bir backup dosyası restore edildiğinde, aksi belirtilmediği sürece mevcut veritabanı üzerine yazılır.

Şimdi az önce oluşturduğumuz .bak uzantılı dosya ile veritabanımızı restore edelim. Öncelikle resimdeki gibi Database–>Restore Database seçeneğine tıklıyoruz.

sqlserver restore database
Geri Yükleme İşlemini Başlatma

Açılan pencerede Restore işlemiyle ilgili ayarlar bulunuyor. Pencere; Source-Destination-Restore Plan isminde 3 bölüme ayrılmış durumda. Uzun uzun bu bölümleri anlatmaya gerek olduğunu sanmıyorum. Source kısmından aldığımız yedeği seçiyoruz. Destination kısmından yedeği yükleyeceğimiz veritabanını seçiyoruz. Restore Plan kısmında aldığımız yedeklerin listesi ve bilgileri görünüyor, eğer birden çok yedeğiniz varsa hangi yedeği yüklemek istediğinizi seçiyorsunuz. Ok tuşuna bastığınızda veritabanı geri yükleme işlemi başlıyor.

restore database settings
Geri Yükleme Ayarları Penceresi

İşlem tamamlandığında hata almazsanız aşağıdaki gibi işlemin başarılı olduğuna dair bir mesaj gösterilecek.

database restore completed
Geri Yükleme İşlemi Başarıyla Tamamlandı

Sql Server backup ve restore işlemi, yukarıda açıklanandan çok daha karmaşık süreçler içermektedir. Bu yazıda en temel yedekleme işlemleri anlatılmıştır. Konuyla ilgili sorularınızı bana iletebilirsiniz.

Konuyla ilgili profesyonel destek almak için http://www.fins.com.tr/SQL-Server-Yedekleme.asp adresini ziyaret edebilirsiniz.

İlginizi Çekebilir!

ilişkisel veritabanı tasarımı

İlişkisel Veritabanı Tasarımı

İlişkisel veritabanı kısaca verilerin belli kriterlere göre farklı tablolarda saklanması ve bu tabloların aralarında ilişkiler ...

4 Yorumlar

  1. Hocam Sadece differential backup ı nasıl restore edeceğiz örneğin ben önce bir full backup aldım daha sonra işlemler yaptım ve diffrenital fark backup ı aldım sadece fark olarak aldığım backup ı nasıl restore edebilirim hiç bir yerde bulamadım hep full backup ve restore var yarımcı olursanız çok sevinirim. ben direk diffrential backup ı restore etmeye çalıştım aşağıdaki hatayı verdi…

    TITLE: Microsoft SQL Server Management Studio
    ——————————
    Restore failed for Server ‘asd’. (Microsoft.SqlServer.Smo)
    ——————————
    ADDITIONAL INFORMATION:
    System.Data.SqlClient.SqlError: The log or differential backup cannot be restored because no files are ready to rollforward. (Microsoft.SqlServer.Smo)

    • Merhaba ipman,

      Dif backup için öncesinde alınan full backup yedeği ile birlikte seçilerek restore edebilirsiniz.

  2. Merhaba,
    Eğer denemediğiniz bir yöntemse diye belirtmek isterim, dif backup yüklemeye çalışıyorsanız bildiğim kadarıyla öncelikle dif backup a bağlı temel backup’ı yüklemeniz ve daha sonra sırasıyla dif backupları yüklemeniz gerekiyor.

  3. Merhaba Device dan back up yüklemeye çalışıyorum. Aşağıdaki gibi hata alıyorum bir türlü çözemedim :S

    TITLE: Microsoft SQL Server Management Studio
    ——————————

    Restore of database ‘CPMMASTER_PG_SEC’ failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)

    ——————————
    ADDITIONAL INFORMATION:

    System.Data.SqlClient.SqlError: BACKUP LOG cannot be performed because there is no current database backup. (Microsoft.SqlServer.SmoExtended)

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir