SQL SERVER 2017 BACKUP-RESTORE İŞLEMİ

1 – 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)

Resim 2

Üç ç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.


Değişik Backup Tipleri:



Resim 3

Üç ç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

1 - SQL Server 2017'de "Databases" bölümüne gelip "All Task" ile "Back up" seçilir.( Resim 4 )



Resim 4


Resim 5

2 - 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

3 – "Options" bölümü kontrol edilir. (Resim 7)


Resim 8

4-OK butonuna basıldığında yedek alma işlemi başlar. (Resim 8)



FULL BACKUP KULLANILARAK RESTORE İŞLEMEDEN YAPILMASI

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



Resim 10

2-"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)




Resim 11

3-"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)



Resim 12

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

(Resim 13)

5-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)

Resim 14

6-"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)


Resim 15

7-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)

Resim 16



SQL SERVER 2005'de DIFFERENTIAL BACKUP

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


Resim 17

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



Resim 18

3-"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)

Resim 19




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

1-"Databases "Bölümün gelinir sağ tuş ile "Restore Database" seçilir. (Resim 20)



Resim 20

2-Veritabanı ismi yazılır, From device işaretlenerek Backup dosyasındaki lokasyon "Add" ile bulunur. (Resim 21)


Resim 21


3-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. (Resim 22)


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

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


Resim 22

2-"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)

Resim 23


TRANSACTION LOG BACKUP KULLANARAK RESTORE ISLEMININ YAPILMASI

1-"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

3-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

4- "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ı "task"ları 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:

1-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

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


Resim 29

3-"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

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

Resim 31

4-Çı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

5-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

6-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


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

Resim 36

9-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