YEDEKLEME VE YEDEKTEN GERİ DÖNME Mehtap KARA
Backup Alma & Kullanma Veri tabanında meydana gelebilecek olası veri kayıplarına karşı, önceden tedbir almak önemlidir. Bu yüzden verilerin yedeklerinin alınması gerekmektedir. Backup almak bir veri tabanı yöneticisinin(DBA) yapması gereken işlerin başında gelmektedir.
Verİ tabanInI Yedeklemek Veri tabanı işlemleri yaparken veri kayıpları olabilir. Bu kayıpların yaşanmasının birçok sebebi vardır. Fiziksel Sorunlar Donanımsal Sorunlar Yazılımsal Sorunlar Doğal afetler(yangın, deprem, sel baskınları, toprak kayması) Disklerin bozulması İşletim sistemi hataları Çoklu donanım bozulmaları DBMS hataları Fiziksel sabotajlar(bomba atılması, yangın çıkartılması) Kazara silmeler Güvenlik ihlalleri
Yedekleme Türlerİ Üç farklı türden veri tabanı yedeği alınabilir. Tam Veri tabanı Yedeği(Full Database Backup) Fark Yedeği(Differantial Backup) Log Yedeği(Log Backup)
Tam Verİtabanİ Yedeğİ (Full Database Backup) Bütün veri tabanının yedeğini almak için kullanılır. Yedekten geri dönerken Full Backup yeterli olacaktır.(Başka bilgiye gerek duymaz.) Herhangi bir zamana dönmek için yeterli değildir. Differantial Backup ve Log Backup’tan geri dönmek için her zaman bir Full Database Backup’a ihtiyaç duyulur.
Fark Yedeğİ (DIfferantIal Backup) Son alınan Full Backup’tan sonraki veri farklarını içerir. Büyük veritabanları için sürekli Full Backup almak fazla yer kaplar. Bunun için Full Backup üzerine Differantial Backup alınmalıdır.
Log Yedeğİ(Log Backup) Veritabanını belli bir zamana döndürmeye yarar. Full Backup’tan veya son Differantial Backup’tan sonra aradaki tüm log yedeklerine gereksinim duyar.
Yedek ve Medya Kavramlarİ Yedekleme Aygıtı(Backup Device) Sql Server’ın yedekleri yazabileceği manyetik veri saklama ortamıdır. Yedekleme aygıtları, yedekleri kaydedebilmek için bir ortama(Medya) gereksinim duyarlar. Yedekler genellikle disk veya kaset(tape) türünden ortamlarda saklanır.
Medyaset Yedekleme aygıtlarını gruplar ve yönetir. Bir veya daha fazla Backup Device içerebilir. Birden fazla Backup Device içerirse, bir grupta aynı medya tipinden(disk/tape) Backup Device’ları bulundurur. SQL Server, yedekleme yaparken yedeği bir Medyaset’te yer alan bütün aygıtlara paylaştırarak yazar.
Mirrored Medya Set Bir yedek medya setinin birden fazla kopyada saklanmasını sağlar. Bir medya setinin mirroru da medya seti ile aynı karakteristiğe sahip olmalıdır. Böylelikle, medya setlerden herhangi biri zarar görürse diğer mirrorlardaki medya seti ile yedeklerden geri dönülebilir.
Yedek Almak Herhangi bir veri tabanının yedeğini almak için şu kod yazılmalıdır; BACKUP DATABASE veritabani TO DISK = ‘disk_dosya_yolu’ [,TO DISK = ‘ikinci_aygit_yolu’,…] [WITH MEDIANAME = ‘medyaset_ismi’];
Normalde, alınan her yedek aynı dosyaya yazılsa bile, dosyadaki yedeklerin devamına eklenir. Ancak yer sıkıntısı sebebiyle bazı durumlarda eski yedeklerin silinip yeni yedek alınması gerekebilir. Bu durum şu ifadeyle sağlanır;
Bir veri tabanı birden fazla dosyaya dağıtılarak yedeklenebilir. Dağıtarak yedeklemek, okuma-yazma işlemlerinin hızlı olmasını sağlar. Ancak, yedeklenen dosyalardan biri bile bozulsa yedek okunmayacaktır.
Birden fazla dosyaya yayılmış yedeklerin başka bir kopyasını aynı sayıda ve tipte dosyalara dağılmış olarak kopyalayabiliriz. Bunun için Mirrored Medya Set kullanılır. Alınan mirror dosyalardan herhangi biri bozulsa bile kopya yedeklerden backup’a ulaşılabilir.
SQL Server ManagemeNt StudIo İle Backup Alma Veri tabanı üzerine sağ tıklanıp «Tasks\Backup» menüsünden yedekleme yapılabilir.
«Media Options» menüsünden yedekleme işlemi için gerekli ortam özellikleri ayarlanabilir.
«Backup Options» menüsünden yedekleme için sıkıştırma ve geçerlilik süresi ayarlanabilir.
Full Backup ve DIfferantIal Backup’tan Dönmek Genel ifade şu şekildedir; RESTORE DATABASE veritabaniAdi FROM yedekleme_aygitlari|DISK = ‘dosya_yolu’ WITH FILE = dosya_numarasi,[RECOVERY|NORECOVERY] Başka bir yedek daha indirilmeyecekse RECOVERY denmelidir. (hizmet verilebilir) NORECOVERY diyerek son logların açık kalması ve yeni yedeklerin ileri doğru uygulanması sağlanır.
Log Yedeğİnden Gerİ Dönmek Full Backup’tan dönüldükten sonra uygulanabilir. Ayrıca Full Backup’tan NORECOVERY ile dönülmüş olması gereklidir. Log yedeğinden dönmek için; RESTORE LOG veritabani_adi FROM yedekleme_aygitlari|DISK=‘dosya_yolu’ WITH FILE = dosya_numarasi, [RECOVERY|NORECOVERY]
SQL Server Management StudIo İle Yedekten Dönmek Bunun için veritabanına sağ tıklandıktan sonra «Tasks/Restore» menüsünden «Database» seçilerek ilgili sayfaya geçilebilir.
Kaynaklar https://technet.microsoft.com/tr-tr/library/ms187510(v=sql.110).aspx http://www.turgaysahtiyan.com/post/Transaction-Log-Backup-ile-Istenilen-Bir-Ana- Donmek.aspx http://www.kodlamamerkezi.com/veritabani-sql/sql-server-yedek-alma-ve-yedegi- geri-yukleme/