Aracılığıyla paylaş


Yedekleme sıkıştırması (SQL Server)

Şunlar için geçerlidir: SQL Server

Bu makalede SQL Server yedeklemelerinin sıkıştırılması açıklanmakta olup, kısıtlamalar, yedeklemeleri sıkıştırmanın performans değişimleri, yedekleme sıkıştırma yapılandırması ve sıkıştırma oranı ele alınmaktadır. Yedekleme sıkıştırması SQL Server sürümlerinde desteklenir: Enterprise, Standard ve Developer. SQL Server 2008 (10.0.x) ve sonraki sürümleri sıkıştırılmış bir yedeklemeyi geri yükleyebilir.

Fayda -ları

Kısıtlamalar

Sıkıştırılmış yedeklemeler için aşağıdaki kısıtlamalar geçerlidir:

  • Sıkıştırılmış ve sıkıştırılmamış yedeklemeler bir medya kümesinde bir arada olamaz.

  • SQL Server'ın önceki sürümleri sıkıştırılmış yedeklemeleri okuyamıyor.

  • NTbackups, sıkıştırılmış SQL Server yedeklemeleriyle bir bandı paylaşamaz.

SQL Server 2025'te kullanıma sunulan ZSTD sıkıştırma algoritması

SQL Server 2025 (17.x) ile başlayarak, yedekleme sıkıştırması için yeni bir sıkıştırma algoritması olan ZSTD kullanılabilir. Bu algoritma, önceki MS_XPRESS algoritmasından daha hızlı ve daha etkilidir.

Yedekleme sıkıştırması için ZSTD algoritmasını aşağıdaki yollardan biriyle kullanabilirsiniz:

Yedeklemeleri sıkıştırmanın performans etkisi

Varsayılan olarak, sıkıştırma CPU kullanımını önemli ölçüde artırır ve sıkıştırma işlemi tarafından kullanılan ek CPU eşzamanlı işlemleri olumsuz etkileyebilir. Bu nedenle, CPU kullanımı Resource Governor ile sınırlı olan bir oturumda düşük öncelikli sıkıştırılmış yedeklemeler oluşturmak isteyebilirsiniz. Daha fazla bilgi için bkz. Resource Governor'ı Kullanarak CPU Kullanımını Yedekleme Sıkıştırması ile Sınırlama (Transact-SQL).

SQL Server 2022(16.x) sürümünden başlayarak, yedeklemeleri sıkıştırmak ve yedekleme için CPU kaynaklarını boşaltmak için Tümleşik boşaltma ve hızlandırmayı kullanabilirsiniz.

Yedekleme G/Ç performansınızın iyi bir resmini elde etmek için aşağıdaki performans sayaçlarını değerlendirerek yedekleme G/Ç'sini cihazlara veya cihazlardan yalıtabilirsiniz:

Windows sayaçları hakkında bilgi için Bkz. Windows yardımı. SQL Server sayaçlarıyla çalışma hakkında bilgi için bkz. SQL Server Nesnelerini Kullanma.

Sıkıştırılmış yedeklemenin sıkıştırma oranını hesaplama

Yedeklemenin sıkıştırma oranını hesaplamak için yedekleme kümesi geçmiş tablosunun backup_size ve compressed_backup_size sütunlarındaki yedekleme değerlerini aşağıdaki gibi kullanın:

backup_size:compressed_backup_size

Örneğin, 3:1 sıkıştırma oranı disk alanında yaklaşık 66% tasarruf ettiğinizi gösterir. Bu sütunları sorgulamak için aşağıdaki Transact-SQL deyimini kullanabilirsiniz:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;  

Sıkıştırılmış yedeklemenin sıkıştırma oranı, sıkıştırılmış verilere bağlıdır. Elde edilen sıkıştırma oranını çeşitli faktörler etkileyebilir. Başlıca faktörler şunlardır:

  • Veri türü.

    Karakter verileri diğer veri türlerinden daha fazla sıkıştırır.

  • Sayfadaki satırlar arasındaki verilerin tutarlılığı.

    Genellikle, bir sayfada bir alanın aynı değeri içerdiği birkaç satır varsa, bu değer için önemli bir sıkıştırma oluşabilir. Buna karşılık, rastgele veriler içeren veya sayfa başına yalnızca bir büyük satır içeren bir veritabanı için sıkıştırılmış yedekleme, sıkıştırılmamış yedekleme kadar büyük olabilir.

  • Verilerin şifrelenip şifrelenmediği

    Şifrelenmiş veriler, eşdeğer şifrelenmemiş verilerden önemli ölçüde daha az sıkıştırılır. Örneğin, veriler Always Encrypted veya diğer uygulama düzeyinde şifreleme ile sütun düzeyinde şifrelenirse, yedeklemelerin sıkıştırılması boyutu önemli ölçüde azaltmayabilir.

    Saydam Veri Şifrelemesi (TDE) ile şifrelenmiş veritabanlarını sıkıştırmayla ilgili daha fazla bilgi için bkz . TDE ile yedekleme sıkıştırma.

  • Veritabanının sıkıştırılıp sıkıştırılmadığı.

    Veritabanı sıkıştırılırsa, yedeklemelerin sıkıştırılması, bunların boyutunu çok fazla azaltmayabilir( hiç değilse).

TDE ile yedekleme sıkıştırması

SQL Server 2016'dan (13.x) başlayarak, 65536'dan (64 KB) büyük ayarı, bir sayfanın şifresini ilk çözen, sıkıştıran ve sonra yeniden şifreleyen şifrelenmiş veritabanları Saydam Veri Şifrelemesi (TDE) için iyileştirilmiş bir sıkıştırma algoritması sağlar. Belirtilmezse MAXTRANSFERSIZE veya (64 KB) kullanılırsa MAXTRANSFERSIZE = 65536 , TDE şifreli veritabanlarıyla yedekleme sıkıştırması şifrelenmiş sayfaları doğrudan sıkıştırır ve iyi sıkıştırma oranları vermeyebilir. Daha fazla bilgi için bkz. TDE özellikli Veritabanları için Yedekleme Sıkıştırması.

SQL Server 2019 (15.x) CU5'den başlayarak, TDE ile bu iyileştirilmiş sıkıştırma algoritmasını etkinleştirmek için MAXTRANSFERSIZE ayarı artık gerekli değildir. Yedekleme komutu belirtilirse WITH COMPRESSION veya yedekleme sıkıştırma varsayılan sunucu yapılandırması 1 olarak ayarlanırsa, MAXTRANSFERSIZE iyileştirilmiş algoritmayı etkinleştirmek için otomatik olarak 128K'ye yükseltilir. Yedekleme komutunda 64K değeriyle MAXTRANSFERSIZE belirtilirse>, sağlanan değer kabul edilir. Başka bir deyişle, SQL Server değeri hiçbir zaman otomatik olarak azaltmaz, yalnızca artırır. MAXTRANSFERSIZE = 65536ile şifrelenmiş bir TDE veritabanını yedeklemeniz gerekiyorsa, WITH NO_COMPRESSION belirtmeniz veya yedekleme sıkıştırma varsayılan sunucu yapılandırmasının 0 olarak ayarlandığından emin olmanız gerekir.

Daha fazla bilgi için bkz . BACKUP (Transact-SQL).

Uyarı

SQL Server 2019 CU5'i uyguladıktan sonra tek bir yedekleme medya kümesine birden çok yedekleme gerçekleştiriyorsanız, bilinen geri yükleme sorununu çözmek için SQL Server 2019 CU9 (KB13768244) yükleyin. Bu yapılmadığında geri yüklenemeyen yedeklemelere yol açabilir. SQL Server 2019 CU9 uygulandıktan sonra yedekleme işlemi, TDE kullanan veya farklı Veritabanı Şifreleme Anahtarları 'na (DEK) sahip veritabanlarının yedeklerini tek bir yedekleme medya kümesinde birleştirmeyi engelleyen seçeneği uygular INIT .

Yedekleme dosyası için alan ayırma

Sıkıştırılmış yedeklemeler için, son yedekleme dosyasının boyutu verilerin ne kadar sıkıştırılabilir olduğuna bağlıdır ve yedekleme işlemi tamamlanmadan önce bu bilinmiyor. Bu nedenle, varsayılan olarak, sıkıştırma kullanarak bir veritabanını yedeklerken, Veritabanı Altyapısı yedekleme dosyası için bir ön yükleme algoritması kullanır. Bu algoritma, yedekleme dosyası için veritabanının boyutunun önceden tanımlanmış bir yüzdesini önceden ayırır. Yedekleme işlemi sırasında daha fazla alan gerekiyorsa, Veritabanı Altyapısı dosyayı büyütür. Son boyut ayrılan alandan küçükse, yedekleme işleminin sonunda Veritabanı Altyapısı dosyayı yedeklemenin gerçek son boyutuna küçültür.

Yedekleme dosyasının yalnızca son boyutuna ulaşması için gereken şekilde büyümesine izin vermek için izleme bayrağı 3042'yi kullanın. İzleme bayrağı 3042, yedekleme işleminin varsayılan yedekleme sıkıştırma ön yükleme algoritmasını atlamasına neden olur. Bu izleme bayrağı, yalnızca sıkıştırılmış yedekleme için gereken gerçek boyutu ayırarak alandan tasarruf etmeniz gerekiyorsa kullanışlıdır. Ancak, bu izleme bayrağını kullanmak hafif bir performans cezasına (yedekleme işleminin süresinde olası bir artış) neden olabilir.

İlgili görevler

Sonraki Adımlar

Yedeklemeye Genel Bakış (SQL Server)
DBCC TRACEON (Transact-SQL) ile izleme bayrakları ayarlama