Megosztás a következőn keresztül:


Biztonsági mentés tömörítése (SQL Server)

A következőkre vonatkozik:SQL Server

Ez a cikk az SQL Server biztonsági másolatainak tömörítését ismerteti, beleértve a korlátozásokat, a tömörítési biztonsági mentések teljesítménybeli kompromisszumoit, a biztonsági mentések tömörítésének konfigurációját és a tömörítési arányt. A biztonsági mentés tömörítése az SQL Server Enterprise, Standard és Developer kiadásaiban támogatott. Az SQL Server 2008 (10.0.x) és újabb verziók minden kiadása visszaállíthatja a tömörített biztonsági mentést.

Előnyök

  • Mivel a tömörített biztonsági mentés kisebb, mint ugyanazon adatok tömörítetlen biztonsági mentése, a biztonsági mentés tömörítése általában kevesebb eszköz I/O-t igényel, ezért általában jelentősen növeli a biztonsági mentés sebességét.

    További információ: A biztonsági másolatok tömörítésének teljesítményre gyakorolt hatása a cikk későbbi részében.

Korlátozások

A tömörített biztonsági mentésekre a következő korlátozások vonatkoznak:

  • A tömörített és tömörítetlen biztonsági másolatok nem létezhetnek együtt egy médiakészletben.

  • Az SQL Server korábbi verziói nem tudják olvasni a tömörített biztonsági másolatokat.

  • Az NTbackups nem tud szalagot megosztani tömörített SQL Server-biztonsági másolatokkal.

Az SQL Server 2025-ben bevezetett ZSTD-tömörítési algoritmus

Az SQL Server 2025 -től (17.x) kezdve egy új tömörítési algoritmus, a ZSTD érhető el a biztonsági mentési tömörítéshez. Ez az algoritmus gyorsabb és hatékonyabb, mint az előző MS_XPRESS algoritmus.

A ZSTD-algoritmust a következő módokon használhatja a biztonsági mentés tömörítéséhez:

A biztonsági másolatok tömörítésének teljesítményre gyakorolt hatása

Alapértelmezés szerint a tömörítés jelentősen növeli a processzorhasználatot, és a tömörítési folyamat által felhasznált további processzorok hátrányosan befolyásolhatják az egyidejű műveleteket. Ezért érdemes lehet alacsony prioritású tömörített biztonsági másolatokat létrehozni egy olyan munkamenetben, amelynek processzorhasználatát a Resource Governor korlátozza. További információért lásd: A Resource Governor használata a CPU-használat korlátozására biztonsági mentési tömörítéssel (Transact-SQL).

Az SQL Server 2022 (16.x)-től kezdve az integrált offloading és gyorsítás használatával tömörítheti a biztonsági mentéseket, és tehermentesítheti a CPU-erőforrásokat a mentéshez.

Ha jó képet szeretne kapni a biztonsági mentés I/O teljesítményéről, elkülönítheti a biztonsági mentés I/O-ját az eszközökre vagy az eszközökről a következő teljesítményszámlálók kiértékelésével:

A Windows-számlálókkal kapcsolatos információkért tekintse meg a Windows súgóját. További információ az SQL Server-számlálók használatáról: SQL Server-objektumok használata.

Tömörített biztonsági mentés tömörítési arányának kiszámítása

A biztonsági mentés tömörítési arányának kiszámításához használja a biztonsági mentés értékeit a biztonsági mentési tábla backup_size és compressed_backup_size oszlopaiban az alábbiak szerint:

backup_size:compressed_backup_size

A 3:1 tömörítési arány például azt jelzi, hogy körülbelül 66% lemezterületet takarít meg. Ezen oszlopok lekérdezéséhez a következő Transact-SQL utasítást használhatja:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;  

A tömörített biztonsági mentések tömörítési aránya a tömörített adatoktól függ. Számos tényező befolyásolhatja a kapott tömörítési arányt. Főbb tényezők a következők:

  • Az adatok típusa.

    A karakteradatok más típusú adatoknál jobban tömörítenek.

  • Az adatok konzisztenciája az oldal sorai között.

    Ha egy lap több olyan sort tartalmaz, amelyben egy mező ugyanazt az értéket tartalmazza, akkor jelentős tömörítés történhet az adott értékhez. Ezzel szemben a véletlenszerű adatokat tartalmazó vagy oldalanként csak egy nagy sort tartalmazó adatbázisok esetében a tömörített biztonsági mentések majdnem olyan nagyok, mint a tömörítetlen biztonsági másolatok.

  • Az adatok titkosítása

    A titkosított adatok jelentősen kevesebbet tömörítenek, mint az egyenértékű titkosítatlan adatok. Ha például az adatok az oszlopszinten always encrypted vagy más alkalmazásszintű titkosítással vannak titkosítva, előfordulhat, hogy a biztonsági másolatok tömörítése nem csökkenti jelentősen a méretet.

    A transzparens adattitkosítással (TDE) titkosított adatbázisok tömörítésével kapcsolatos további információkért lásd a TDE-vel végzett biztonsági mentési tömörítést.

  • Az adatbázis tömörítve van-e.

    Ha az adatbázis tömörítve van, előfordulhat, hogy a biztonsági másolatok tömörítése egyáltalán nem csökkenti a méretüket.

Biztonsági mentés tömörítése TDE használatával

Az SQL Server 2016 -tól kezdve (13.x) a 65536-nál (64 KB) nagyobb beállításával optimalizált tömörítési algoritmust transzparens adattitkosításhoz (TDE) titkosított adatbázisokhoz, amelyek először visszafejtenek egy lapot, tömörítik, majd újra titkosítják. Ha MAXTRANSFERSIZE nincs megadva, vagy ha MAXTRANSFERSIZE = 65536 (64 KB) van használatban, a TDE titkosított adatbázisokkal történő biztonsági mentéstömörítés közvetlenül tömöríti a titkosított oldalakat, és nem biztos, hogy jó tömörítési arányokat eredményez. További információ: TDE-kompatibilis adatbázisok biztonsági mentési tömörítése.

Az SQL Server 2019 (15.x) CU5-től kezdve a MAXTRANSFERSIZE beállítása már nem szükséges az optimalizált tömörítési algoritmus TDE-vel való engedélyezéséhez. Ha a biztonsági mentési parancs meg van adva WITH COMPRESSION , vagy a biztonsági mentés tömörítésének alapértelmezett kiszolgálókonfigurációja 1 értékre van állítva, MAXTRANSFERSIZE a rendszer automatikusan 128 000-re növeli az optimalizált algoritmus engedélyezéséhez. Ha MAXTRANSFERSIZE a biztonsági mentési parancs > 64K értéket tartalmaz, a megadott érték elfogadásra kerül. Más szóval az SQL Server soha nem csökkenti automatikusan az értéket, csak növeli azt. Ha egy TDE-titkosított adatbázisról MAXTRANSFERSIZE = 65536kell biztonsági másolatot készítenie, meg kell adnia WITH NO_COMPRESSION, vagy meg kell győződnie arról, hogy a biztonsági mentés tömörítésének alapértelmezett kiszolgálókonfigurációja 0 értékre van állítva.

További információ: BACKUP (Transact-SQL).

Figyelmeztetés

Ha az SQL Server 2019 CU5 alkalmazása után több biztonsági mentést hajt végre egyetlen biztonsági mentési adathordozón, telepítse az SQL Server 2019 CU9 -t (KB13768244) egy ismert visszaállítási probléma megoldásához. Ennek elmulasztása olyan biztonsági mentéseket eredményezhet, amelyek nem állíthatók vissza. Az SQL Server 2019 CU9 alkalmazása után a biztonsági mentési folyamat kikényszeríti a INIT beállítást, ami megakadályozza, hogy a TDE-t használó vagy különböző adatbázistitkosítási kulcsokkal (DEK-kkal) rendelkező adatbázisok biztonsági másolatait egyetlen biztonsági mentési adathordozó-készletbe egyesítse.

A biztonsági mentési fájl helyének lefoglalása

Tömörített biztonsági mentések esetén a végső biztonsági mentési fájl mérete attól függ, hogy az adatok mennyire tömöríthetők, és ez a biztonsági mentési művelet befejeződése előtt ismeretlen. Ezért alapértelmezés szerint az adatbázis tömörítéssel történő biztonsági mentésekor az adatbázismotor egy előtelepítési algoritmust használ a biztonsági mentési fájlhoz. Ez az algoritmus előre meghatározta a biztonsági mentési fájl adatbázisának méretének egy előre meghatározott százalékát. Ha a biztonsági mentési művelet során több helyre van szükség, az adatbázismotor növeli a fájlt. Ha a végső méret kisebb, mint a lefoglalt terület, a biztonsági mentési művelet végén az adatbázismotor a fájlt a biztonsági mentés tényleges végső méretére zsugorítja.

Annak érdekében, hogy a biztonsági mentési fájl csak akkor növekedjen, amikor szükség van rá a végső méret eléréséhez, használja a 3042-es nyomjelző zászlót. A 3042-es nyomjelző miatt a mentési művelet megkerüli az alapértelmezett mentési tömörítési előfoglalási algoritmust. Ez a nyomkövetési jelző akkor hasznos, ha helyet kell mentenie a tömörített biztonsági mentéshez szükséges tényleges méret kiosztásával. Ennek a nyomkövetési jelzőnek a használata azonban enyhe teljesítménybeli büntetést okozhat (a biztonsági mentési művelet időtartamának esetleges emelkedését).

Kapcsolódó tevékenységek

Következő lépések

biztonsági mentés áttekintése (SQL Server)
Nyomkövetési jelzők beállítása a DBCC TRACEON használatával (Transact-SQL)