Backup Compression
Backup Compression özelliği SQL Server 2008 ile beraber hayatımıza girdi. Backup’larımızı alırken bu seçeneği belirterek backup boyutlarımızı küçültebiliyoruz. Fakat backup boyutlarımızı küçültürken aynı zamanda cpu’ya da ekstra bir yük getirmiş oluyoruz.
Resource Governor ile Backup alan kullanıcının kullandığı cpu kaynağını limitleyebilirsiniz. “Resource Governor ile Kaynak Kullanımını Kısıtlayın” isimli makalede detayları bulabilirsiniz.
Backup’ın ötesinde SQL Server’da tablolarınızı da compress edebilirsiniz. Tabi ihtiyaca göre karar vermek lazım. Çünkü çoğu zaman disk, cpu’ya göre daha kolay büyütülebilir bir kaynaktır. “SQL Server Compression” isimli makaleyi okumak isteyebilirsiniz.
Aşağıdaki sorgu yardımıyla normal backup boyutu ile compress edilmiş backup boyutunu görebiliriz.
SELECT name,backup_size/1024/1024 AS BackupBoyutuMB,compressed_backup_size/1024/1024 AS CompressEdilmişBoyutuMB FROM msdb..backupset where name is not null;
Backup Compression’ı instance bazında default olarak aktif etmek istersek aşağıdaki script yardımıyla bu işlemi gerçekleştirebiliriz.
EXEC sys.sp_configure 'backup compression default', '1' GO RECONFIGURE WITH OVERRIDE GO
Backup alırken de aşağıdaki gibi Compress backup’ı seçebiliriz.
Yada sorgunuzun sonuna aşağıdaki gibi WITH COMPRESSION ifadesini ekleyebilirsiniz.
BACKUP DATABASE [AdventureWorks2014Yeni] TO DISK = N'C:\Backup\AdventureWorks2014Yeni.bak' WITH COMPRESSION, STATS = 10
Yukardaki script’i çalıştırdığınızda aşağıdaki gibi bir hata alıyorsanız eskiden compression olmadan aldığınız backup’ın üstüne compression ile backup almaya çalışıyorsunuz demektir.
Msg 3098, Level 16, State 2, Line 1
The backup cannot be performed because ‘COMPRESSION’ was requested after the media was formatted with an incompatible structure. To append to this media set, either omit ‘COMPRESSION’ or specify ‘NO_COMPRESSION’. Alternatively, you can create a new media set by using WITH FORMAT in your BACKUP statement. If you use WITH FORMAT on an existing media set, all its backup sets will be overwritten.
Msg 3013, Level 16, State 1, Line 1
BACKUP DATABASE is terminating abnormally.