SQL SERVER 2017 BACKUP-RESTORE İŞLEMİ
SQL Server 2017 Backup-Restore İşlemi ile ilgili ayrıntılı bilgiye bu dokümandan ulaşılır.
Değişik Veritabanı Recovery Tipleri: Backup alınması detaylarına girmeden önce veritabanının restore tipi bilinmelidir. Bunu öğrenmek için "SQL Server Management Studio" üzerinde veritabanı seçilerek "properties"e bakılmalıdır.


Resim 1

"Options" üzerinde "Recovery" çeşidi görülebilir. 

Resim 2

Database propertieste üç çeşit recovery modeli bulunur:

  • Simple Recovery Model: Bu modelde transaction log dosyasını kaydedilemez. Küçük veritabanları ve çoğunlukla yalnızca sorgulanan veritabanları için kullanılır. Onaylanan "transaction" kayıtları veritabanına yazılır yazılmaz "transaction log" dosyadan silinir. Bu düzenleme veritabanı sorunlarının giderilmesi için daha sonra "transaction log" yedeğinin alınmasına olanak sağlar. (Büyük veya ticari veritabanı sistemleri için kullanılmamalıdır).
  • Full Recovery Model: Bu modelde SQL Server, "transaction log" tutar ve gerektiğinde verilerin veritabanı ve "transaction log" dosyalarından birlikte elde edilerek dakika bazında kurtarılmasını sağlar.
  • Bulk- Logged Model: "Full recovery model" özelliklerini içerir. Ayrıca "SELECT INTO" gibi "bulk load" işlemleri için "transaction log" dosyasında kayıt tutulmamasına dolayısıyla daha az yer kaplamasına neden olur.


Resim 3

Database için üç çeşit Backup alma yöntemi mevcuttur:

  • Full Backup: Bir veritabanının tamamı "backup file"ye eklenir. Eğer "init" parametresi kullanılmışsa "device" içindeki "file" üzerine yazılır. "Noinit" parametresi kullanılmışsa "backup file" içine eklenir ve bu durumda aynı "device" içerisinde "complete backup" içeren birçok dosya bulunur. "Init" parametresiyle "complete backup" alınmışsa device içinde tek bir "backup file" olur ve veritabanı büyüdükçe onun da boyu artar. Restore işlemi yapılacağı zaman, eğer "noinit" parametresi ile alınan "complete backup"ları varsa, en son alınan "backup file" açılarak son ana geri dönülebilir. Full Backup işleminin kötü tarafı, veritabanı büyüdükçe yedekleme zamanının da artmasıdır. Bir de özellikle "noinit" parametresi ile kullanılıyorsa (öndeğer olarak "noinit"tir) "backup device" disk üzerinde çok fazla yer kaplamaya başlar. "Enterprise Manager"in "Management" bölümünden "backup device"ye bakıldığında durum daha rahat görülür. Aşağıda ilk resimde "init" parametresi kullanılarak alınan yedekte "backup device" içinde tek "backup file" görülmekte. Diğerinde ise "noinit" parametresi kullanılarak alınan bir sonraki yedeğin ikinci bir "backup file" olarak "backup device"ye eklenmiştir.
  • Differential Backup: "Complete backup"un yukarıda anlatılan sakıncalarından kurtulmak için "differential backup" kullanılabilir. "Differential backup"ta uygulanan sistem, sadece veritabanında oluşan değişikliklerin yedeğinin alınmasıdır. Yani "differential backup" alındığında son "complete backup"tan sonraki değişiklikler alınır. Tabii bunun için öncelikle veritabanının "complete backup"nın alınması gerekir. Bundan sonra alınan differential backup ile veritabanında değişen kısımlar "complete backup"a eklenir. Burada dikkat edilmesi gereken önemli bir durum vardır. Eğer tek "backup device" kullanılıyorsa ve sürekli "differential backup" alınıyorsa, "init" parametresini kullanmamak gerekir. "Init" parametresi kullanılırsa mevcut "backup device" içindeki "backup file"ler silinirler. Böyle olunca da yeni alınan "differential backup" o zamana kadar alınan yedekleme dosyalarının üzerine yazılmış olur. Böyle bir durumdan geri dönülmesi olanaksızdır.
  • Transaction Log Backup: Bir başka yedekleme yöntemi de "transaction log" yedeğidir. "transaction log backup" ta yapılması gerek şey önce full veritabanı yedeğinin alınmasıdır.


"Transaction log"lar uygun bir veritabanı yedeği olmaksızın restore edilemez.

SQL SERVER 2017'de FULL BACKUP Alma

SQL Server 2017'de "Databases" bölümüne gelip "All Task" ile "Back up" seçilir.


Resim 4
Eğer yedek dosyalarının tutulacağı yer olarak listede hiçbir konum belirtilmemiş ise "Add" butonuna basıp çıkan pencereden alınacak yedek dosyasının nerede konumlanacağı belirtilebilir. 


Resim 5

Resim 6

"Options" bölümü kontrol edilir. 

OK butonuna basıldığında yedek alma işlemi başlar. 


Resim 8


FULL BACKUP KULLANILARAK RESTORE İŞLEMİNİN YAPILMASI

Microsoft SQL Server Management Studio üzerinde "Databases" bölümüne gelip sağ klik ile "Restore Database" seçilir. 


Resim 10

"Restore" edilmek istenen veritabanının ismi yazılır ve "From device" bölümüne geçilir. (Halen çalışmakta olan veritabanı üzerine "restore" yapmak için "To Database" bölümü seçilir ve kaynak veritabanı olarak "From Database" bölümünden "restore" edilmek istenen veritabanı seçilir. Ardından "Options" bölümünden "Overwrite the existing database" seçilir. 


Resim 11

"From Device" bölümünde veritabanı dosyasının yeri işaret edilmelidir. Eğer dosyada ise "Add" butonuna basılır. 


Resim 12

"Add" butonuna bastıktan sonra dosyanın yeri bulunur. "Files of type" kataloğundan "All files(*)" seçilmelidir. 

(Resim 13)

Eğer "Full" veya "Differential" yedek alınıyorsa; "To a point in time:" kullanılan veritabanında belirlenen bir tarih ve zaman aralığında alınan yedek dosyaların görülmesini sağlar. Bunu yapması için; son alınan yedek dosyasının alınma tarihinden daha önce bir tarih ve saat aralığı belirlenmelidir.

Resim 14

"Options" Bölümünde açıklamalar doğrultusunda ayarlar yapılır. Burada önemli olan nokta "Restore As" Bölümündeki path'ın gerçekten var olmasıdır. 


Resim 15

Son olarak "Select the backup sets to restore" bölümünden restore edilmek istenen dosya seçilir ve "OK" butonuna basılır.

Resim 16


SQL SERVER 2005'de DIFFERENTIAL BACKUP

SQL Server 2005'te " Database" bölümüne gelip "All Task" i le "Back up" seçilir. 


Resim 17

"Destination" bölümü boş ise "Add" ile backup dosyasının alınacağı yer kararlaştırılır. 


Resim 18

"Options" Bölümünden yedek dosyası hakkında istenilen ayarlar uygulanır ve "OK" ile yedek alınır. Yedek dosyasının doğruluğunun kontrol edilmesi için "Verify backup when finished" kesinlikle işaretlenmelidir. 

Resim 19


DIFFERENTIAL BACKUP KULLANILARAK RESTORE İŞLEMİNİN YAPILMASI

"Databases "Bölümün gelinir sağ tuş ile "Restore Database" seçilir.


Resim 20

Veritabanı ismi yazılır, From device işaretlenerek Backup dosyasındaki lokasyon "Add" ile bulunur.

Resim 21

Backup dosyasının konumu seçildikten sonra var olan restore edilebilecek yedek setleri ve içerikleri ile ilgili bilgiler gelir. Burada önemli olan nokta eğer aynı isimde var olan veritabanı yok veya veritabanı '0' dan restore ediliyorsa önceden alınmış bir tane "Full backup" ve en son alınmış (yada restore edilmek istenen zaman dilimine uyan) backup dosyası seçilir. Eğer hali hazırda aynı isimli veritabanı dosyamız var ise sadece "Differential backup" dosyası seçilir ve options bölümünden "Overwrite the existing database" seçilir ve "OK" e basılır. 

Eğer "Full" veya "Differential" yedek alınıyorsa; "To a point in time" kullanılan veritabanında belirlenen bir tarih ve zaman aralığında alınan yedek dosyalarının görülmesini sağlar. Bunu yapması için; son alınan yedek dosyasının alınma tarihinden daha önce bir tarih ve saat aralığı belirlenmelidir. (Resim 14)

Resim 22

SQL SERVER TRASACTION LOG BACKUP

SQL Server 2005'te " Databases" bölümüne gelip " All Task" ile "Back up" seçilir; ( Resim 22 )


Resim 22

"Options" Bölümünden yedek dosyası hakkında istenilen ayarlar uygulanır ve "OK" e basılarak Backup alınır. Backup dosyasının doğruluğunun kontrol edilmesi için "Verify backup when finished" kesinlikle işaretlenmelidir. 

Resim 23

TRANSACTION LOG BACKUP KULLANARAK RESTORE İŞLEMİNİN YAPILMASI

"Transaction log" yedeklerini yeniden kurmadan önce, ilk olarak "full database backup" açılmalı. (Resim 24). Çoklu "transaction loglar" olduğu zaman, en sondaki hariç bütün "transaction loglar" için "NORECOVERY" seçeneği belirtilir. (Resim 25). SQL Server, son transaction log restore edilene kadar recovery işlemini erteler.


Resim 24


Resim 25

Son "Transaction Log" yedeği restore edilirken "RESTORE WITH RECOVERY" seçeneği belirtilmelidir. (Resim 26 a, 26 b)


Resim 26 a


Resim 26 b

"Transaction log" yedeği restore edilirken belirli bir zaman noktasına dönülebilir. Örneğin bozuk bir güncelleme saat 11:00'de oluşursa, 10:59 süresince "transaction log" yedeğinden değişiklikler geri yüklenir ve bu noktadan sonra oluşan değişiklikler uygulanmaz. (Resim 27)


Resim 27

MAINTENANCE PLAN (BAKIM PLANI) ile BACKUP

Veritabanını denetlemek için, elle ya da otomatik olarak farklı taskları yerine getirmek gerekir. Bu "task"lar database "maintenance plan"ı oluşturur. "Task"lar aşağıdaki bileşenleri içerir:

  • Veritabanı yedekleme görev.
  • Veritabanı bütünlüğü kontrolü görevi.
  • SQL Server Agent görevlerini uygulama görevi.
  • T- SQL ifadelerini uygulama görevi.
  • Geçmişi temizleme görevi.
  • Bakım temizliği görevi.
  • Uyarı operatörü görevi.
  • İndeksleri yeniden oluşturma görevi.
  • İndeksleri yeniden organize etme görevi.
  • Veritabanını küçültme görevi.
  • İstatistikleri güncelleme görevi.


Veritabanı yedekleme Görevi: Microsoft SQL Server Management Studio programı çalıştırılır ve "Management" bölümü üzerinde sağ tuş ile "New Maintenance Plan..." çalıştırılır. (Resim 28)


Resim 28

Oluşan "Maintenance plan" isimlendirilir. ( Resim 29 )


Resim 29

"Maintenance plan" oluştuktan sonra "Toolbox" içerisindeki "Back Up Database Task" bölümü sürüklenerek ana bölüme yapıştırılır. ( Resim 30 )


Resim 30

"Back Up Database Task" üzerinde sağ tuşa basılarak "Edit" seçilir. ( Resim 28 )

Resim 31

Çıkan "Back Up Database Task" penceresinde bulunan "databases" bölümünden yedekleme işleminde kullanılacak veritabanı seçilir ve ardından " OK"ye basılır. ( Resim 32 )


Resim 32

Sonrasında çıkan ekran üzerinde yedek dosyasının nereye alınacağı, yedek çeşidi gibi bilgiler girilir ve "Verify Backup Integrity" seçili durumda olmalıdır. ( Resim 33 )

Resim 33

Yedek dosyasının yerini belirlemek için "Back up databases across one or more files: " bölümündeki Add" butonuna basılır ve dosyanın fiziksel adresi yazılır. ( Resim 34 )


Resim 34

7-Son olarak belirli zaman aralıklarında otomatik olarak çalışmasını ayarlamak için " Shedule" bölümünde bulunan butona basıyoruz. ( Resim 35 )


Resim 35

Resim 36 'da bulunan direktifler doğrultusunda zaman planı yapılır ve "OK"ye basılır.

Resim 36

Bakım planı kapatıldığında çıkacak "Save changes to the following i tems?" sorusuna "Yes" cevabı verilir. Bakım planı üzerindeki değişiklikler kaydedilmiş olur. ( Resim 37 )


Resim 37