SQL Server 2008 – Sıkıştırılmış Yedekleme Backup Compression

tarafından 6 Nisan 2010 tarihinde Microsoft kategorisine yazıldı.

SQL Server 2008 makale serimize aşağıda görmüş olduğunuz kurulum ve kurulum sonrası temel bazı uygulamaları içeren aşağıdaki makaleleler ile sizlerle paylaşmıştık. Eğer SQL Server konusuna yeniyseniz öncelikle aşağıdaki makaleleri okuduktan sonra bu makalemize devam etmenizi öneriyorum.

SQL SERVER 2008 – Nedir – Kurulum Gereksinimleri – Destekleri – IIS 7 Yukleme
SQL SERVER 2008 – Kurulum
SQL SERVER 2008 – Management Studio ile Calışmak

Bu makalemizde sizlerle SQL Server 2008 ile gelen veritabanı bileşenlerinde gelen yeni özelliklerden SIKIŞTIRILMIŞ YEDEKLEME (BACKUP COMPRESSION) özelliğini anlatacağız. İleriki makalelerde ise SQL Server 2008 ile veritabanı bileşenlerinde hem yönetimsel hem de programlama tarafında gelen yeniliklerle beraber iş zekası çözümlari tarafında Analiz Servisleri, Entegrasyon Servisleri ve Raporlama Servislerinde gelen yenilikleri ve bunlara ilişkin örnek uygulamaları sizlerle paylaşıyor olacağız.

Sıkıştırılılmış Yedekleme (Backup Compression) sayesinde SQL Server 2008 ile artık aldığınız yedekleri sıkıştırarak disk üzerinde çok daha az alanlar kullanmalarını sağlayabiliyoruz. Yedek sıkıştırma özelliği sadece SQL Server 2008 Enterprise sürümü ile desteklenmeye başlanan bir özellik. Sıkıştırılarak alınan yedekler SQL Server 2008 ile ve bundan sonra çıkacak SQL Server sürümlerinde çalışan tüm veritabanı sistemlerine geri yükleme yapılabilecek.

Sıkıştırılmış yedekleme özelliği SQL Server 2008’de varsayılan olarak kapalı durumda gelir. Bu özelliği aktifleştirmek ya da değiştirmek isterseniz SQL Management Studio konsolunda SQL Server bilgisayarınızın Properties’inde gelen Database Settings sayfasındaki Compress Backup kutucuğunu kullanmalısınız.

image004

NOT: Sıkıştırılmış yedekleme özelliği ile ilgili server seviyesinden yapılan bu ayarı aynı zamanda Transact-SQL kodlarını kullanarak aşağıdaki şekilde backup compression default değerini kullanarak değiştirebilirsiniz:

USE master;

GO

EXEC sp_configure backup compression default, ‘1’;
RECONFIGURE WITH OVERRIDE;

Eğer alacağınız yedeklerde kullanıcı kendisi bir ayar yapmadan sıkıştırılmış yedek almasını istiyorsanız bu kutucuğu doldurmanız gerekir. Bu kutucuk dolu olduğu durumda kullanıcı aldığı yedek işlemi esnasında isterse sıkıştırılmış yedek alma özelliğini aşağıdaki seçeneği kullanarak kullanmayabilir.

image006

Yedekleme işlevini transact-sql kodları ile yapıyorsanız backup database kodunuzda NO_COMPRESSION ifadesini kullanmanız yeterli olacaktır.

BACKUP DATABASE AdventureWorks TO DISK=‘C:\COZUMPARK\CompressedBackup.bak’

WITH FORMAT, NO_COMPRESSION

Sıkıştırılmış Yedekleme yapmak için NO_COMPRESSION yerine COMPRESSION kullanmanız yeterli olacaktır.

SQL MANAGEMENT STUDIO İLE

SIKIŞTIRILMIŞ YEDEKLEME UYGULAMASI


Sıkıştırılmış Yedekleme özelliğini bir uygulama ile görelim:

SQL Server 2008 program grubu içerisinden SQL Management Studio konsolunu açıyoruz. Ve ister Windows Authentication isterseniz de SQL authentication kimlik doğrulama yöntemlerinden birini kullanarak SQL Server Database Engine bileşenine bağlanıyorum. (Benim Makina adim ISTANBUL ).

SQL Management Studio içerisinde yedekleme yapacağım AdventureWorks2008 veritabanı üzerinde aşağıdaki şekilde görüldüğü gibi yedek alma ekranını açıyorum:

image008

Gelen pencerede yedeği alacağım lokasyon olarak C:\COZUMPARK\SQLYEDEK klasörünü gösteriyorum ve alacagim yedek dosyasinin adini da NormalYedek olarak veriyorum.

image010

Bu yedeklemede sıkıştırma kullanmıyorum. Bunun kontrolü için Options sayfasına geçiyorum.

image012

Ve burada Compression bölümünde gelen liste kutusundan “Do not compress backup” seçeneğini seçiyorum. Eğer burada “Use the default server setting” ayarını seçerseniz bu şu anlama geliyor: “SQL Server bilgisayarınızın seviyesinden sıkıştırma ile ilgili hangi ayar yapılmışsa o ayar geçerli olsun diyorum.”

Ben server seviyesinden varsayılan davranış olarak sıkıştırma özelliğini açmadığım için alacağım yedek de sıkıştırma kullanmadan alınan normal yedek olacaktır.

image014

Server seviyesindeki compress seçenek ayarlarına ulaşmak için aşağıdaki şekilde de görüldüğü üzere SQL Management Studio (SQLMS) içerisinde server adınızın Properties’inden Database Settings sayfasına ulaşmanız yeterli olacaktır.

image016

OK butonuna tıklayarak yedekleme işlemini başlatıyorum. Yedekleme işlemi tamamlandıktan sonra şekilde de görüldüğü üzere toplamda yaklaşık 187 MB olduğunu görüyorsunuz.

image018

Şimdi aynı konuma sıkıştırma uygulayarak yedekleme yapacağım ve kapladığı alana bakacağım. Aldığım yedeğe CompressedBackup adını veriyorum.

image020

OK butonuna tıklayarak yedekleme işlemini başlatıyorum. Yedekleme işlemi tamamlandıktan sonra şekilde de görüldüğü üzere 48 MB boyutuna düştüğünü görüyorsunuz.

image022

Sıkıştırılarak alınan yedekler daha az I/O kullandıklarından performansa da önemli bir katkı sağlarlar. Aynı zamanda yedekleme zamanı da ciddi oranda düşmektedir. Diğer yandan sıkıştırma operasyonundan dolayı CPU kullanım oranı daha da artacaktır. Özellikle CPU kullanımının SQL Server 2008 Resource Governor ile sınırlandırıldığı durumlarda CPU tüketimini dikkate alarak sıkıştırılmış yedekleme ile ilgili konfigürasyonlarınızı yapmanızda fayda var.

Alınan yedeklerdeki sıkıştırma oranları hakkında bilgi almak için aşağıdaki sorguyu kullanabilirsiniz:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;


SIKIŞTIRMA ORANI HAKKINDA

Sıkıştırılmış yedeklemede sıkıştırma oranına etki eden faktörleri şu şekilde sıralayabiliriz:

· Veri tipi (Karakter tipindeki veriler diğerlerine oranla daha fazla sıkışır.)

· Satırlardaki verilerin bütünlüğü

· Verinin şifrelenmesi ya da şifrelenmemesi (Şifrelenmiş veriler şifrelenme uygulanmamış verilere oranla ciddi oranda daha az sıkıştırma yapılabilirler.)

· Veritabanınında sıkıştırma özelliğinin kullanılıp kullanılmaması (Sıkıştırılmış veritabanlarının yedekleri daha az oranda sıkıştırmaya tabi tutulurlar.)


TRANSACT-SQL İLE SIKIŞTIRILMIŞ YEDEKLEME UYGULAMASI

Şimdi de aynı yedekleme işlemini transact-sql komutları ile gerçekleştirelim. Önce sıkıştırma uygulamadan yedekleme yapmak için aşağıdaki kodları SQL Management Studio içerisindeki sorgu ekranına yazmanız yeterlidir.

BACKUP DATABASE Adventureworks2008

TO DISK = ‘C:\COZUMPARK\SQLYEDEK\NormalYedek.bak’
WITH INIT, NO_COMPRESSION

Şimdi de aynı yedekleme işlemini transact-sql komutları ile sıkıştırma uygulayarak yedekleme yapmak için aşağıdaki kodları SQL Management Studio içerisindeki sorgu ekranına yazmanız yeterlidir.

BACKUP DATABASE Adventureworks2008

TO DISK = ‘C:\COZUMPARK\SQLYEDEK\CompressedBackup.bak’
WITH INIT, COMPRESSION

NOT: Sıkıştırılmış yedeklerin geri yüklenmesi süreci de normal alınmış yedeklere oranla daha kısa sürede gerçekleşecektir.

Bu makalemizde sizlere SQL Server 2008 ile beraber gelen SIKIŞTIRILMIŞ YEDEKLEME (BACKUP COMPRESSION) özelliğinin bizlere neler sağladığı, klasik yedeklemeden farklarını ve bu özelliğin kullanımını uygulamalı olarak anlattık. Önümüzdeki makalelerde SQL Server 2008 ile beraber gelen yeni özellikleri detaylı uygulamalarıyla birlikte anlatmaya devam edeceğiz.


Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur.Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2015, VCP5, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.