Merhabalar,

Bu yazımda sizlere SQL Server 2008 de Backup Restore işleminin ne olduğu nasıl yapıldığını ve ne tip bir önem arz ettiğini anlatacağım. Backup – Restore işlemini basit manada özetlersek; Saklı Verinin Diske yada Tape e 1 Kopyasının alınması ve beklenmedik hatalarda yada felaket durumlarında bu kopya Verinin Restore edilerek data kaybının önlenmesi olarak tanımlayabiliriz. Backup – Restore işlemi Veritabanı kavramları içerisinde en kritik konulardan birisidir. Özellikle Büyük çaplı Telekomünikasyon Şirketleri, Banka, Devlet Daireleri, Büyük Holdingler için Olmazsa olmazlardan birisi Saklı verilerin kaybolmamasıdır.

Büyük çaplı şirketlerde yada önemli projelerde ki dataların kaybı maddi ve itibar sarsıcı olaylara sebebiyet verdiği için bu tip şirketler Veritabanlarının yada Dosyalarının her zaman için 1 yada önem derecesine göre birden fazla Kopyasını saklamak durumundadır.

Şirketlerde ve Sistemlerde meydana gelebilecek Veri kaybına neden olan sebepler ise aşağıdaki gibidir.

  1. Media Failure
  2. Kullanıcı Bazlı Hatalar. Tabloyu drop etmek gibi
  3. Disk Hataları. Disk bozulması
  4. Doğal afetler. Deprem su baskınları gibi..

Örnek bir Senaryo: Günümüzde hemen hemen hiç kimse büyük miktarda parasını evinde yastık altında tutmaz bankada hesabında tutar. Bankada Hesabınızdaki parayı yada yaptığınız hesap hareketlerini Bakkal defteri gibi defterde tutmaz Veritabanların da bu veriyi saklarlar. Hesap bakiye yada Hesap hareketlerini tutan veritabanının Göçtüğünü varsayalım herhangi bir hatadan dolayı, bu hatadan Banka nasıl dönebilir ? Böylesi bir amatörce hata bankalar ve müşteriler tarafından geri dönüşü olmayacak bir felaket demektir. O yüzden bankalar bilgi sistemlerinin korunması için kritikliğine göre çok sayıda backup alırlar almakta zorundalardır.

Şimdi gelelim SQL Server 2008 de backup alma işlemine. SQL Server 2008 de backup alma işlemi hem T-SQL kodlarıyla hemde bunu kullanan Management Studio aracılığıyla gerçeklenebilmektedir. Ben her ikisini kullanarak size SQL Server 2008 de Backup almayı göstereceğim. Aşağıdaki görüntüde örnek bir instance üzerinde AdventureWorks database inin backup alınma adımları gösterilmiştir.

Backup 1

 

Örnek instance a bağlandıktan sonra AdventureWorks database ine Sağ tıklayıp Tasks->Backup sekmesine aşağıdaki gibi tıklıyoruz.

Backup

Management Studio ekranından gelen Backup işleminde çeşitli opsiyonlar vardır. Şimdi bunları inceleyip işlemimize devam edelim.

Backup Tipleri

SQL Server Management Studio da aşağıda göründüğü gibi 3 türlü Backup alınır.

Backup 3

 

Bunlar aşağıdaki gibidir.

  1. Full
  2. Differential
  3. Transaction Log şeklindedir.

Full Backup: Bu yedek alma tipi kritik veritabanları için en doğru olan seçenektir. Veritabanının Full backup ının alınması demek Veritabanın Log+Transaction log dahil bütün parçalarının yedeğini almak demektir. Full backup alındıktan sonra Restore aşamasında başka hiçbir şeye ihtiyaç duyulmaz aynı zamanda Full backup alma Differential backup alma gibi işlemler için de temel adım niteliği taşır. Veritabanı sistemi göçmüş ve elinizde en güncel Full backup ınız varsa endişe etmeye gerek yok sistemi tekrardan restore ederek canlı hale getirebilirsiniz. Full backup modelinde veritabanının log larıda yedeklendiği için data kaybı önlenir. Full backup online modda diğer transactionlar çalışırkende alınabilir. Son commit lenmiş transactionlar full backup a dahildir.

Differential Backup: Disk alanının sınırlı olduğu sunucularda bu yönteme başvurulur. Database in t1 anında alınan Full Backup ından sonra t2 anında da tekrar backup alınmak isteniyorsa eğer t1 anındaki full backup referans alınarak t2-t1 anına kadar olan kısmın backup ı alınır. Yani alınan Differential backup t1 anından t2 anına kadar geçen süredeki dataları barındıracaktır. Differential backup ın restore işlemi için son alınan full backup ve Differential backup a ihtiyaç vardır.

Transaction Log Backup: Full veya Differential backup yapıldıktan sonra meydana gelen transactionları yedekler. Kritik sistemlerde data kaybının yaşanmaması için çok gereklidir.

Veritabanı eğer Full yada Bulk logged recovery modelini kullanıyorsa data kaybından kurtulmak için sık sık Transaction log backup alınmak zorundadır.  Transaction log backup diğer backup lara nazaran çok küçük boyutlu olurlar.

Backup tiplerini anlattıktan sonra şimdi en önemli backup çeşidi olan Full Backup yöntemini SQL Server 2008 üzerinde gerçeklenmesini anlatıp yazıma son vereceğim. SQL Server da Veritabanının Full Backup ının alınması için Recovery Model in full olması gerekmektedir. Bunun için Veritabanımızı Sağ Tıklayıp Properties seçeneğini tıklayıp gelen menüde Options sekmesini tıklıyoruz. Aşağıdaki görüntüde belirtildiği üzere Recovery Modeli Simple moddan Full moda alıyoruz.

Backup 2
 

Veritabanını Full moda çektikten sonra Backup sekmesine geri dönüyoruz. Burda aşağıdaki görüntüde görüldüğü gibi Backup type ını Full olarak işaretliyorum.

Backup 2 -1

 

Şimdi Yukarıdaki Backup işlemini aşağıdaki görüntüde görüldüğü gibi madde madde anlatacağım.

Backup 4

 

  1. Bu sekmede görüntüde görüldüğü gibi Backup ı alınacak Database seçilir.
  2. Bu sekmede Backup ı alınacak database in Recovery Modeli görülür. Bunu değiştirmek için yukarıdaki gibi Databases->Properties-> Options kısmından değiştirilebilir.
  3. Bu madde de Backup ın hangi tipte alınacağı belirtilir. Yukarıda bunu ayrıntılı olarak anlatmıştım.
  4. Bu adımda Backup kümesinin tanınması için ismi ve açıklaması istenirse girilir.
  5. Bu sekmede Backup ın ne zaman expire olacağını istersek SQL Server a söyleyebiliriz. Bu zamana gelindiğinde alınan Backup SQL Server tarafından expire edilir yani bu backup geçerliliğini yitirir.
  6. Bu adımda Backup kümesinin Tape mi yoksa diske mi kaydedileceğini ve kaydedilecek path in tam olarak belirlendiği bir adımdır.

Bu adımlardan sonra Backup alınacak Veritabanının Options sekmesine gelip yeni opsiyonlar daha ekliyoruz. Aşağıdaki görüntüde bunu madde madde olarak açıklıyorum.

Backup 5

 

  1. Bu maddede alınacak Backup kümesinin daha önce alınan Backup la birleştirilip birleştirilmeyeceğinin seçeneğinin sunulduğu adımdır.
  2. Bu adım Backup tamamlandığı zaman bu işlemin güvenirliliğini test eden adımdır.
  3. Bu adımda ise Backup kümesi istenirse eğer Sıkıştırılarak alınabilir. Disk sıkıntısı yaşanan sunucularda Backup lar Compress edilerek alınması daha doğrudur.

Bütün opsiyonlar tamamlandıktan sonra aşağıdaki görüntüde olduğu gibi T-SQL scripti alınır. SQL Server üzerinde yapılan işlemlerde Management Studio da yapılan işlemlerin Scriptinin alınıp çalıştırılması Management Studio da çalıştırılmasından bazen daha etkilidir. Management Studio tool u bazen kafayı yiyebiliyor 🙂 .

Backup 6

 


T-SQL Backup Kodu:
BACKUP DATABASE [AdventureWorks] TO  DISK = N'D:\Data\AdventureWorksBackup.bak' WITH NOFORMAT, NOINIT,
NAME = N'AdventureWorks-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10, CHECKSUM, CONTINUE_AFTER_ERROR
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'AdventureWorks' and backup_set_id=(select max(backup_set_id)
from msdb..backupset where database_name=N'AdventureWorks' )
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''AdventureWorks'' not found.', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'D:\Data\AdventureWorksBackup.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO

 

Script çalıştıktan sonra aşağıdaki gibi message lardan anlaşıldığı gibi Backup işlemi başarılı bir şekilde gerçeklenmiştir.

Backup 7

 

Backup işlemi tamamlandıktan sonra Böylece bir yazımın daha sonuna gelinmiş bulunmaktayım. Bir Sonraki yazıda Bu yazının devamı olan SQL Server 2008 de Restore yazısıyla devam edeceğim. Bir Sonraki yazıda görüşmek dileğiyle Esen Kalın…

Mehmet Salih Deveci

Veritabanı Yöneticisi

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s