|
|
|
SQL SERVER 2008 : Yedek Sýkýþtýrma
(Backup Compression) Özelliði
|
Son güncelleme tarihi: 22 Kasým 2007
Merhaba arkadaþlar,
Bu makalemde
sizlere SQL Server 2008 ile birlikte gelen Sýkýþtýrýlmýþ Yedekleme
(Compressed Backup) özelliðinden bahsedeceðim.
Bazýlarýnýzýn da bildiði gibi, bu sýkýþtýrýlmýþ yedekleme özelliði gerçekten çok
gerekiyordu. Veritabaný yöneticileri açýsýndan veritabanlarý konusundaki en önemli
þeyler güvenlik, verinin kullanýlabilirliði ve performanstýr. Yedekleme, veritabaný
yöneticileri için hayati ve sürekli yapýlmasý gereken bir iþlemdir. Her zaman son
yedeðiniz kadar güvendesinizdir.
SQL Server 2008' den önceki SQL Server versiyonlarýnda maalesef sýkýþtýrma özelliði
yoktu. Bazý veritabaný yöneticileri bu ihtiyaçlarýný üçüncü parti yazýlýmlar (Red-Gate
Backup gibi) kullanarak gideriyordu.
Peki, sýkýþtýrma neden gerekiyor? Yukarýda da dediðim gibi, veritabaný yöneticilerinin
sürekli yedek almalarý gerekiyor. Diskler artýk eskisi gibi pahalý deðiller, çok
daha kolay alabiliyoruz; fakat eðer doðru ve düzenli bir þekilde kullanýlmazlarsa
bir süre sonra disk yönetimi de sorun olmaya baþlýyor. Örnek vermek gerekirse, SQL
Server sunucularýndan sorumlu olduðum büyük bir firma, disklerini çok kötü kullanýyordu.
Raporlarýmda sürekli belirtmeme raðmen geliþi güzel yedekler alýp oraya buraya atýyorlardý
ve sonunda ne oldu tahmin edin! Evet, patladýlar =)
Eðer yedeklerimizi düzenli ve kontrollü bir þekilde alýrsak, böyle sorunlarla karþýlaþmayýz.
Neyse, çok daðýtmadan hemen sýkýþtýrmanýn neden gerektiðine de bir vurgu yapýp hemen
yeni
özelliklerden bahsedeyim. Gerçi artýk vurguya da gerek kalmadý, söylemek istediðim
þeyi sanýrým çoktan anlamýþsýnýzdýr... Bol yedek alacaðýmýz için, disk alanlarýndan
kazanmamýz gerekiyor. Ayrýca, sýkýþtýrma yöntemi kullanacaðýmýz için dosya boyutu
daha küçük olacak, yani G\Ç (I\O) iþlemleri de azalacak. Her þekilde kazanmýþ oluyoruz.
Tek kayýp var, ondan da sýrasý gelince bahsedeceðim.
Sýkýþtýrýlmýþ Yedek özelliði sadece SQL Server 2008' in Enterprise Sürümünde
olacak arkadaþlar. Bununla birlikte, bir SQL Server 2008 Enterprise sürümüyle sýkýþtýrýlmýþ
veritabaný yedeði, baþka bir SQL Server 2008 sürümüyle (meselâ Standard veya Express)
açýlabilecek; fakat diðer sürümler maalesef sýkýþtýrýlmýþ yedek alamayacaklar. Ayrýca,
SQL Server' ýn eski versiyonlarý (90, 80, 70...) SQL Server 2008 ile alýnan sýkýþtýrýlmýþ
yedekleri açamayacaklar.
Sýkýþtýrýlmýþ bir yedek ile sýkýþtýrýlmamýþ bir yedek
ayný medya-set' inde saklanamaz.
Her þeyin ama her þeyin bir bedeli olduðuna inanýrým; evet, bunun da bir bedeli
var! Fiyatý hariç =) Bedeli þu: Ýþlemci. Evet arkadaþlar, sýkýþtýrma iþlemi, iþlemcinizi
yoracak. Bununla birlikte, yukarýda da bahsettiðim gibi yedek alma süresini düþüreceði
için G\Ç' dan ("Girdi\Çýktý" Bu terimden, fiziksel disklere yapýlan yazma ve okumalar
kastediliyor.) kâr edeceksiniz.
Bu sýkýþtýrma iþinin gördüðünüz gibi bazý maliyetleri olacaðý için, bu iþe kalkýþmadan
önce gerekli performans testlerini yapmanýzý tavsiye ederim. Ve de yedeklerinizi
iþ saatleri dýþýnda almanýzý tavsiye ederim. Ýþlemci o zamanlar daha az kullanýlýyor
olacaktýr. Ayrýca, sýkýþtýrýlmýþ yedek alacaðýnýz zaman iþ saatlerinde iþlemcinize
ekstra yük bindirmemiþ olursunuz. Performans testlerini Yönetimsel Araçlar' daki
Sistem Monitörü ile yapabilirsiniz.
Sýkýþtýrýlmýþ veritabaný yedeði özelliði hem sunucu düzeyinde varsayýlan olarak ayarlanabilir, hem de yedek alýrken T-SQL komutunun içerisinde siz de belirleyebilirsiniz.
Ve tabii ki, SSMS' te yedekleme iþlemi için menüleri kullanarak da belirlenebilir.
Bu yöntemlere dair bir kaç tane örnek ve resim de göstermek istiyorum sizlere.
Sunucu düzeyinde ayar yapmak için:
- sp_configure Transact-SQL komutunu kullanabilirsiniz,
veya
- SSMS arayüzünü kullanarak, aþaðýdaki resimde de gösterdiðim yerden varsayýlan
ayar deðiþikliðini yapabilirsiniz.
Sunucu
düzeyinde yapýlan varsayýlan sýkýþtýrýlmýþ yedek alma ayarýndan farklý bir yedek
almak için ise aþaðýdaki yöntemleri kullanabilirsiniz:
- BACKUP DATABASE \ LOG komutu ile birlikte
WITH NO_COMPRESSION veya WITH COMPRESSION anahtarlarýný
kullanabilirsiniz.
veya
- SSMS kullanarak aldýðýnýz yedeðin Seçenekler menüsünden "Compress backup"
veya "Do not commpress backup" seçeneklerini kullanarak ihtiyacýnýza
göre yedek alabilirsiniz. Ayarý nereden yapacaðýnýza dair de bir resim ekliyorum
aþaðýya.
Tabii bir de veritabanlarýnýn neye göre ve ne kadar sýkýþtýrýlacaðý konusu var.
Bu konuda da aþaðýdaki bilgileri dikkate alýn. Veritabanlarýnýzýn yedekleri, bu
kriterlere göre çok veya az sýkýþtýrýlacaktýr.
- Verinin tipi: Her zaman olduðu gibi (Winzip veya Winrar vb. programlarda)
karakterler daha çok sýkýþtýrýlýr.
- Sayfa (Page)' lardaki satýrlarýn veri bütünlüðü: Tipik olarak,
bir sayfadaki satýrlarda bulunan verriler ayný deðerleri içeriyorsa önemli bir miktarda
sýkýþtýrma oraný yakalayabilirsiniz. Tam tersi bir senaryoda ise, yani eðer her
sayfada büyük ve sadece bir satýr varsa veya veritabanýnýzda hep farklý farklý,
birbirine benzemeyen veriler varsa o zaman sýkýþtýrýlmýþ veritabaný yedeðinizin
boyutu, hiç sýkýþtýrýlma iþlemine uðramamýþ veritabaný yedeðiyle ayný olacaktýr
büyük ihtimalle.
- Verilerinizi þifreli olup olmadýðý (Encrypted):
Sýkýþtýrýlmýþ veritabaný yedeðiniz, þifrelenmemiþ benzerlerine göre çok daha az
sýkýþtýrýlacaktýr.
- Veritabanýnýzýn sýkýþtýrýlmýþ olup olmadýðý: Bu durumda sýkýþtýrýlmýþ
veritabaný yedeðiniz neredeyse hiç bir boyut azalmasýna neden olmayacaktýr.
Not: Bu son öðede lütfen
yanlýþ anlaþýlma olmasýn. SQL Server 2008' de, veritabanýný da sýkýþtýrabiliyorsunuz.
Yani veritabanýný sýkýþtýrmak baþka bir iþlem, sýkýþtýrýlmýþ veritabaný yedeði almak
baþka bir iþlem.
Özet:
Size bu makalemde SQL Server 2008 Enterprise Edition ile birlikte gelecek
olan Yedek Sýkýþtýrma (Backup Compression) özelliðini anlatmaya çalýþtým. Umarým
yararlý olmuþtur.
Ekrem Önsoy
|
|
Anasayfa |
|