Editor Login | Register
Ekle

> Akademik İnternet ® > SQL SERVER
Yedekleme (Backup) Yöntemleri ve Türleri - SQL SERVER - Akademik İnternet ® -
IronIx
(Date : 04.06.2008 20:56:28)


Yedekleme (Backup) Yöntemleri ve Türleri







Yoo, Yoksa Yedeğiniz Yok Mu?  SQL Server 2005"te
Yedekleme (Backup) Yöntemleri ve Türleri

 

Bilgisayarımız göçtü! Veritabanımız artık yok! Peki şimdi ne yapacağız! Verilerimizi nasıl elde edeceğiz!? Şaka şaka. Şimdilik herşey yolunda, ama her an her şey olabilir! Verilerimiz bizim için büyük önem arzetmekte. Bunun için verilerimiz elden gitmeden, yedekleme planımızı belirlemeliyiz. Sunucumuzda kurulu olan veritabanımızın sürekli işlerliği projelerimizin sağlıklı çalışması açısından çok büyük önem arzetmektedir. Veritabanı dosyaların bakımları düzenli olarak yapılmalıdır. Verilerimizin, veritabanı dosyalarımızın güvenliği için, veritabanı dosyaların bakımı sırasında belirli bir yedekleme stratejisi takip edilmelidir. 

Bu makalemizde SQL Server 2005"te yedekleme planı ve yedekleme stratejileri üzerinde duracağız.  Şimdi yedekleme işleminin nasıl yapıldığına bakalım.

Yedekleme (Backup) İşlemi Nasıl Yapılır?

Yedekleme işlemini birden fazla yöntemle yapmamız mümkündür. Biz SQL Server Management Studio aracılığı ile ve T-SQL aracılığı ile nasıl yapıldığı üzerinde duracağız.

Management Studio Aracılığı ile Yedekleme (Backup) İşlemi

Yedekleme işlemlerini SQL Server Management Studio arayüzü aracılığı ile kolaylıkla yapabiliriz.
 
SQL Server 2005"le beraber gelen yedekleme türlerine bakalım. Bunun için veritabanımızın üzerinde sağ tuş yaptıktan sonra gelen menüden sırasıyla Tasks-> Backup"ı seçelim.


1.Resim: Backup ekranını açma.

Yedekleme işlemimizin özelliklerini belirleyebileceğimiz bir pencere açılacaktır.


2.Resim: Yedekleme işleminin özelliklerini belirleme.

Source kısmında, hangi veritabanın yedeğini almak istediğimizi belirtiyoruz. Backup Type kısmına makalenin ilerleyen kısmında değiniyor olacağım. 

Destination kısmında yedek dosyamızın yerini belirleyebiliriz. Destination kısmındaki Add komut düğmesine basarak, yedek dosyalarımızı nereye yerleştireceğimizi belirleyelim.


3.Resim: Yedek dosya yerini belirleme.

Dosya yerini belirledikten sonra tamama (OK) basalım. Veritabanı yedeğini başarılı bir şekilde aldığımıza dair bilgi mesajı verilecektir.


4.Resim: Yedek işleminin başarılı tamamlanması.

Bu şekilde, Management arayüzünü kullanarak yedekleme işlemini gerçekleştirmiş olduk.

T-SQL BACKUP Komutu ile Yedekleme (Backup) İşlemi

Bütün yedekleme işlemlerini SQL Server Management Studio aracılığı ile yapılabilmektedir. Bunların yanında, T-SQL komutlarını ile yedekleme işlemlerini yapmayı öğrenmemiz bizim faydamıza olacaktır.

T-SQL komutu ile yedekleme işleminin yapabilmek için kullanılan komut: BACKUP komutudur. BACKUP komutu ile iki farklı çeşit yedekleme işlemi yapabiliriz.

BACKUP DATABASE: Veritabanı yedeği alabilmek için kullandığımız komuttur.
BACKUP LOG: Transaction log"ların yedeklerini almak için kullandığımız komuttur.

Hem veritabanı yedekleme komutunun (BACKUP DATABASE) hem de işlem günlüğü yedekleme komutunun (BACKUP LOG) kullanımı oldukça zor ve komplektir.

BACKUP DATABASE için kullanılan parametreler şunlardır:

DIFFERENTIAL : fark yedekleme türü için kullanılan parametredir.PASSWORD : yedeklerin şifrelenmesi için kullanılan parametredir.CHECKSUM : veritabanı sayfasını kontrol etmek için kullanılan parametredir.

BACKUP LOG için kullanılan parametreler şunlardır:

TRUNCATE_ONLY : to truncate the inactive entries of the newspaper (vacuums, validated or cancelled).NO_TRUNCATE : to write all the operations of the newspaper and to leave it in the state without emptying it.

BACKUP DATABASE komutu için örnek uygulama şu şekildedir:

BACKUP DATABASE Teknoritma
TO DISK = N"C:\TeknoritmaFullBackup.bak"
GO

BACKUP LOG komutu için örnek uygulama şu şekildedir:

BACKUP LOG Teknoritma
TO DISK = N"C:\TeknoritmaFullBackup.log"
GO

BACKUP komutumuzu grafik ekranı üzerinde de uygulayabiliriz. Veritabanımız üzerinde sağ tuş yaptıktan sonra gelen menüden sırasıyla, Tasks ->Properties basalım. Açılan ekranın üst tarafında Script komut düğmesini görüyor olacağız.


7.Resim: Script ile komut işletme.

Komut satırından yapabileceğimiz gibi bu bölümü kullanarak BACKUP işlemimizi gerçekleştirebiliriz.

Yedekleme Türleri

Üç farklı yedekleme türü vardır:


8.Resim: Backup çeşitleri.

Full Backup : Bu yedekleme türü veritabanın tamamının bir kopyasını almaktadır. Full Backup"ın bir önemi diğer yedekleme modellerini geri yüklemek için de bir başlangıç noktası olmasından kaynaklanmaktadır. Hangi geri yükleme modelini kullanmak istersek isteyelim, öncelikli olarak veritabanın bir kere Full Backup"ı alınması gerekmektedir. Differential Backup : Sadece en son Full Backup yedeklemeden sonra değişen verilerimizi yedeklemek için kullanılmaktadır. Bu yedekleme türü Full Backup yedekleme türüne göre daha hızlıdır. Bunun sebebi ise, yedekleme işlemi sırasında yalnızca veritabanında meydana gelen değişikleri kaydetmektedir. Veritabanının öncelikli olarak Full Backup"ını aldıktan sonra, geçen zaman içerisinde Differential Backup"ını alarak yedekleme işlemini gerçekleştirebiliriz.  Transaction Log Backup: Sadece işlem günlüğünün (transaction log) yedeğini alır. En son Differential Backup yüklendikten sonra veritabanımızın son halini elde etmek için Transaction Log Backup yedekleme türünü kullanabiliriz.

Şimdi yedekleme stratejilerini inceleyelim.

Yedekleme (Backup) Stratejini Düşünme

Yedekleme yöntemini belirlerken kullanıcıların ve veritabanlarının neye ihtiyaçları olduğu göz önünde tutmak gerekir. Şu kriterleri göz önünde bulundurarak yedekleme adımlarımızı belirleyebiliriz:

Önem: Veritabanınızın önem derecesini kontrol edin. Müşteriler için mi kurulu olan bir sunucu olduğuna, veya yazılım geliştiriciler için kurulumu bir sunucu olduğuna dikkat ederek önem derecesini belirleyebilirsiniz.Sıklık: Veritabanı hangi sıklıklarla düzenleniyor?Kullanım: Veritabanı kullanım sıklığı nedir? Veritabanı en az hangi zaman dilimlerinde kullanılır? Projemizin kullanımına göre farklılık gösterir bu zaman dilimi ancak, genel olarak veritabanlarına erişim gece vakitlerinde erişim diğer zaman dilimlerine nazaran daha az olmaktadır. Tabi ki, kendi veritabanımızın kullanım zaman dilimine göre, kullanımının az olduğu zaman diliminde yedekleme işlemleri adımlarını çalıştırabiliriz. Geri Yükleme: Verilerimizin değişme sıklığına ve arzettiği öneme göre, sık aralıklarla mı yedekleme işlemi yapmak gerekiyor yoksa günlük yedekleme işlemi yeterli oluyor mu?Tür: Veritabanı sistem veritabanı mı yoksa normal kullanıcının oluşturduğu veritabanı mı?

Bu sorulara cevap verirken, yedekleme yöntemimizi cevaplıyor olmuş olacağız aslında. 

Firmamızda kullandığımız projenin önemine göre farklı aralıklarda verilerimizi yedeklemeyebiliriz. Uygulayabileceğimiz belirli stratejiler şu şekildedir:

Dakikalar Seviyesinde Veri Yedekleme Planı:Günlük olarak her gece Full Backup almak.Günlük olarak gün ortasında Differential Backup almak.Çalışma zamanı sırasında her 10 dakika da bir Transaction Log Backup almak. Özel Veri Yedekleme Planı: Günlük olarak her gece Full Backup almak.Günlük olarak gün ortasında Differential Backup almak.Çalışma zamanı sırasında her 10 dakika da bir Transaction Log Backup almak.Belirlediğimiz bir adımı özel olarak isimlendirerek yedeğini almak. Saat Seviyesinde Veri Yedekleme Planı: Daily Full Backup at night.Daily Differential backup at midday.Transaction Log Backup on each 30 minutes Günlük Veri Yedekleme Planı: Haftalık olarak Full Backup almak.Günlük olarak her gece Daily Differential Backup almak. Her 4 saatte bir Transaction Log Backup almak. Yalnızca Okuma İşlemi İçin Veri Yedekleme Planı: Haftalık veya aylık olarak Full Backup almak.Herbir değişiklikten sonra ellen Full Backup almak.

Sistem veritabanlarına farklı uygulanması gerekiyor. Sistem veritabanlarını şu şekilde inceleyelim:

Master : Yüklemeden veya veritabanı oluşturma, güncelleme işlemlerinden sonra Full Backup yedekleme gerçekleştirilebilir. Haftalık olarak Full Backup yedekleme işleminin gerçekleştirilmesi iyi bir çözüm olabilir. Bazen yalnızca master veritabanının Full Backup"ını almak yeterli olabilir. Msdb : Haftalık olarak Full Backup yedekleme işlemi iyi bir çözüm olabilir. Model : Yalnızca okunabilir bir veritabanıdır. Tempdb : Geçici özelliğe sahip veritabanıdır. Sunucu başlatıldığında oluşturulur, ve sunucu durdurulduğunda silinir. Kayıt edilmesine gerek yoktur.




Derecelendir
Kaynak http://www.sqlnedir.com/Members/ArticleDetail.aspx?Id=176
İçerik İhbarı
Bağlantılar: bilgininefendisi.net

Open Source Document Project AUP&TOS