Yedekleme (backup), SQL Server veritabanlarında yer alan sistem ve kullanıcı verilerinin disk ya da teyp aygıtlarına kopyalayarak verilerin kaybolması riskine karşı yapılan bir çalışmadır. Yedekleme verilerin kaybolmasına karşın kesintisiz ve risksiz çalışma sağlar. Bunun dışında sistem çökmelerine karşı bir garantidir. Yedekleme, verilerin belli aralıklarla teyp, disk ya da uygun ortamlara kopyalanmasıdır sağlar. Bu yedekler daha sonra gereksinim duyulduğunda geri yüklenerek (restore) veri kayıpları önlenir.
Yedekleme konusunda en önemli konulardan birisi de yedeklemenin zamanı ya da sıklığıdır. Ne zaman yedekleme yapılacağı değişik faktörlere göre değerlendirilir:
Önemli bilgilerin yer aldığı veritabanları mutlaka yedeklenmelidir.
Çok sayıda veriyi içeren ve çok sık güncellenen OLTP (Online Transaction Processing) ortamındaki veritabanları daha sık yedeklemek gerekir.
Yedekleme işlemi SQL Server’ın çok yoğun olmadığı saatlerde yapılmalıdır.
Kullanıcı veritabanlarının yanı sıra sistem veritabanları da yedeklenmelidir.
A. SQL SERVER’DA YEDEKLEME İŞLEMİ
Yedekleme işleminde Enterprise Manager ya da Transact-SQL deyimleri kullanılır.
Yedekleme (backup) işleminden önce kalıcı bir yedek dosyasının yaratılması gerekir. Bu dosyalara “backup file” ya da “backup device” denir. Eğer otomatik bir yedekleme işi yaratılacaksa o zaman kalıcı bir yedek dosyası yaratmak iyi olur. Bu dosya SQL Server Enterprise Manager ya da sp_addumpdevice sistem stored procedure ile yaratılabilir.
Bir disk yedek dosyası (aygıtı) yaratmak için;
1. Server grububu açın. Ardından bir server’ı açın.
2. Management açılır.
3. Backup üzerinde sağ tuşa tıklayın ve New Backup Device…. Seçeneğini seçin.
4. Name içinde yedek aygıtı için bir ad girin.
5. File name kutusuna tıklayarak disk yedekleme için kullanılacak fiziksel dosyanın adını girin. Ya da (…) ile Backup Device Location iletişim kutusunu görüntüleyerek disk yedek aygıtı olarak kullanılacak olan fiziksel dosyayı seçin.
Enterprise Manager aracılığıyla bir full database yedeği almak için:
1. Bir server grubunu açın. Ardında bir server’ı açın.
2. Databases grubunu açın ve istediğiniz database üzerinde sağ tuşa tıklayarak Task seçeneğini, ardından Backup Database seçeneğini seçin.
3. SQL Server Backup iletişim kutusunda General sekmesinde Name içinde backup setinin adını girin.
4. Description içinde backup setin açıklamasını girin.
5. Backup altında Database – Complete seçeneğini seçin.
6. Destination altında Add seçeneğini seçerek yeni bir yedek aygıtı yaratın ya da mevcut olan birisine ekleyin. Ya da Remove seçeneği ile bir yedek aygıtını listeden kaldırın.
B. BACKUP DEYİMİ İLE YEDEKLEMEK
Yedekleme işlemi Enterprise Manager, Backup sihirbazı ya da Transact-SQL deyimleriyle yapılabilir.
Ana yedekleme deyimi BACKUP DATABASE’dir.
Kullanım biçimi:
BACKUP DATABASE database adı TO yedek dosyası
[WITH[, FORMAT ][, INIT ya da NOINIT][, RESTART ]]Yedek dosyası; yedek dosyası DISK, TAPE ya da PIPE = geçici yedek dosyası olarak belirtilir.
FORMAT
FORMAT seçeneği yedek setinde bölmeyi ve yedek dosyalarının üzerine yazmayı sağlar.
INIT ya da NOINIT
Seçeneği ise üzerine yazma ya da ekleme işlemlerini sağlar. SQL Server’da varsayım seçenek NOINIT dir. Bu seçenek ile yedekleme mevcut yedek dosyası ve setine ekleme olarak yapılır. INIT seçeneği ise yedeklemenin mevcut yedek datalarının üzerine yapılmasını sağlar.
RESTART
Seçeneği, SQL Server’ın yedekleme işlemini kesildiği yerden devam ettirmesini sağlar.
Teyp Aygıtına Yedeklemek
Daha önce belirtildiği gibi SQL Server değişik ortamlara yedek alabilir. Eğer bir teyp aygıtına yedek alınacaksa teyp aygıtı SQL Server’ın bulunduğu bilgisayara bağlı olmalıdır.
Teyp aygıtına yapılan yedeklemede SQL Server, yedekleme bilgisini teyp etiketine (tape label) yazar. Teybe yapılan yedeklemede aşağıdaki seçenekler kullanılır:
UNLOAD
UNLOAD seçeneği ile SQL Server yedekleme işleminden sonra teybi geriye sarar ve çıkardır. Bu seçenek NOUNLOAD seçeneği belirtilmediği sürece varsayım olarak geçerlidir.
NOUNLOAD
Seçeneği ile SQL Server yedekleme işleminden sonra teybi geriye sarmaz ve çıkarmaz.
BLOCKSIZE
Seçeneği ile teyp üzerindeki fizisel blok büyüklüğü ayarlanır.
FORMAT
Seçeneği ile de bütün volümlere bir “header” bilgisi yazılır. SQL Server yedekleme sırasında başlık bilgilerini yeniden yazar. FORMAT seçeneğinin kullanımında INIT ve SKIP seçenekleri de kullanılmış sayılır.
SKIP
Seçeneği ile başlık bilgileri atlanır. SQL Server, teyp aygıtı üzerinde yer alan ANSI teyp etiketlerini atlar. Teyp üzerinde yer alan ANSI etiket bilgileri teybin kullanım zamanın dolması, yazma izini gibi bilgileri içerir.
NOSKIP
Seçeneği ise SQL Server’ın ANSI tape etiketlerini okumasına gereksinim duyulmuyorsa kullanılır. SQL Server, ANSI teyp etiketlerini varsayım olarak okur.
Bir teyp yedek aygıtı yaratmak için: 1. Server grububu açın. Ardından bir server’ı açın.
2. Management seçilir.
2. Backup üzerinde sağ tuşa tıklayın ve New Backup Device… seçeneğini seçin.
3. Name içinde yedek aygıtı için bir ad girin.
4. Tape Drive Name’e tıklayın ve yedekleme için kullanılacak fiziksel teyp dosyasını seçin.
C. YEDEKLEME TÜRLERİ
SQL Server, değişik gereksinimleri karşılamaya yönelik değişik yedekleme yöntemlerine sahiptir.
Full Database Yedeği
Full database yedeği (backup), yedekleme işlemerinin bir başlangıcıdır. Full database yedeği alındığında SQL Server şu işlemleri yapar:
Yedekleme sırasında gerçekleşen bir işlemi de yedekler.
Transaction Log’da yer alan uncommitted (database’e henüz yazılmamış) bütün işlemleri (transaction bilgilerini) yedekler.
Enterprise Manager aracılığıyla bir full database yedeği almak için:
1. Bir server grubunu açın. Ardında bir server’ı açın.
2. Databases grubunu açın ve istediğiniz database üzerinde sağ tuşa tıklayarak Task seçeneğini, ardından Backup Database seçeneğini seçin.
3. SQL Server Backup iletişim kutusunda General sekmesinde Name içinde backup setinin adını girin.
4. Description içinde backup setin açıklamasını girin.
5. Backup altında Database – Complete seçeneğini seçin.
6. Destination altında Add seçeneğini seçerek yeni bir yedek aygıtı yaratın ya da mevcut olan birisine ekleyin. Ya da Remove seçeneği ile bir yedek aygıtını listeden kaldırın.
1. DİFFERENTİAL DATABASE YEDEĞİ
Full yedeklemenin yanı sıra differential backup yöntemi ise bir önceki full yedekten sonra sadece değişen dataların yedeklenmesini sağlar. Bu işlem daha kısa sürede olur. Ancak geri yüklemede full yedeğin olmasını gerektirir.
Değişen yedek almak için önce full yedek alınmalıdır. Değişen yedek, değişen bilgileri; transaction log’da yer alan uncommitted (database’e yazılmamış bilgiler) işlemleri yedekler.
Differential yedekleme sık sık yapılacağı için yedekleme uygun bir zamanlama adlandırma işlemi yapılmalıdır.
Bir differential database yedeğini yaratmak için:
1. Bir server grubu ve bir server’ı genişletin.
2. Databases grubunu genişletin ve database üzerinde sağ tuşa tıklayın. Task menüsünü işaret edin ve Backup Database seçeneğini seçin.
3. SQL Server Backup iletişim kutusunda General sekmesinde Name içine yedek setinin adını girin.
4. Description içinde yedek setine ilişkin bir açıklama girin.
5. Backup altında Database – Differential seçeneğini seçin.
6. Destination altında Add seçeneğini seçerek yeni bir yedek aygıtı yaratın ya da mevcut olan birisine ekleyin. Ya da Remove seçeneği ile bir yedek aygıtını listeden kaldırın.
7. Overwrite altında tıklayın:
Append to media seçeneği ile yedeği, yedekleme aygıtı üzerindeki mevcut yedeklere ekleyin.
Overwrite existing media seçeneği ile yedek aygıtı üzerindeki mevcut yedeklerin üzerine yazılır.
8. Schedule seçeneği ile işlem daha sonraki bir tarihte yapılacak biçimde ayarlanır.
9. Options sekmesi ile yedekleme seçenekleri düzenlenir:
Verify backup upon completion seçeneği ile yedekleme işleminin doğrulanması (verify) sağlanır.
Eject tape after backup seçeneği ile yedekleme işlemi bittiğinde teybin çıkarılması sağlanır.
Check media set name and backup set expiration seçeneği ile yedekleme ortamı yanlışlıkla üzerine yazılmaya karşı kontrol edilir. Media set name içinde ise media set adı girilir.
10. Backup medyası ilk defa kullanılıyorsa Media set labels altında Initialize and label media seçilir ve medya setinin adı ve açıklaması girilir.