Příznaky
V Microsoft SQL Serveru 2019 může obnovení komprimované databáze nebo záloh protokolů databází s povoleným transparentním šifrováním dat způsobit následující chybu:
Msg 3241, level 16, State 18, Line <LineNumber>
Řada médií v zařízení <název záložního souboru> je nesprávně vytvořena. SQL Server nemůže tuto řadu médií zpracovat.
Řešení
Chcete-li tento problém vyřešit, nekomprimujte zálohy databází s podporou transparentního šifrování dat pomocí některé z následujících metod:
-
Použijte funkci WITH COMPRESSION, jak je popsáno v tématu ZÁLOHOVÁNÍ (Transact-SQL).
-
Spoléhejte na výchozí kompresi zálohování, jak je popsáno v části Zobrazení nebo Konfigurace výchozí možnosti konfigurace serveru komprese zálohování.
Řešení
Informace o kumulativní aktualizaci
Tento problém je opraven v následující kumulativní aktualizaci pro SQL Server:
Kumulativní aktualizace 16 pro SQL Server 2019
Poznámka Abyste se tomuto problému vyhnuli, musíte vytvořit zálohy společně s touto opravou. Instalace pevné CU na cílovou instanci a pokus o obnovení stejné zálohy vytvořené bez opravy nebude fungovat.
Více informací
Důležité informace: Od SQL Serveru 2019 CU16 bude vytváření komprimovaných záloh (databáze nebo protokolu) databází s podporou transparentního šifrování dat používat nový formát zálohování, který je možné obnovit pouze v instanci, která má nainstalovanou verzi CU16 nebo novější.
Obnovení komprimované zálohy databáze s podporou transparentního šifrování dat, která je vytvořená na CU16 nebo novější v instanci SQL Serveru 2019 verze CU15 nebo starší, selže a způsobí následující chyby:
-
OBNOVENÍ DATABÁZE
Msg 3013, level 16, State 1, Line <LineNumber>
Funkce RESTORE DATABASE se neobvykle ukončuje.
Msg 9004, úroveň 21, stav 1, řádek <LineNumber>
Při zpracování protokolu pro databázi TDE_DB došlo k chybě. Pokud je to možné, obnovte ho ze zálohy. Pokud záloha není k dispozici, může být nutné protokol znovu sestavit.
-
OBNOVENÍ PROTOKOLU
Umístění: mediaRead.cpp:1018
Výraz: readSize <= m_Demand
SPID: 84
ID procesu: PROCESSID
Msg 3013, level 16, State 1, Line <LineNumber>
Protokol OBNOVENÍ se ukončuje neobvykle.
Msg 3624, level 20, State 1, Line <LineNumber>
Kontrola systémového kontrolního výrazu se nezdařila. Podrobnosti najdete v protokolu chyb SQL Serveru. Selhání kontrolního výrazu je obvykle způsobeno softwarovou chybou nebo poškozením dat. Pokud chcete zkontrolovat poškození databáze, zvažte spuštění DBCC CHECKDB. Pokud jste souhlasili s odesíláním výpisů paměti do Microsoftu během instalace, pošle se Microsoftu mini výpis paměti. Aktualizace může být k dispozici od společnosti Microsoft v nejnovější aktualizaci Service Pack nebo v opravě hotfix od technické podpory.
Poznámka RESTORE HEADERONLY a RESTORE FILELISTONLY nejsou tímto problémem ovlivněny a budou fungovat ve všech případech.
OBNOVENÍ VERIFYONLY se může úspěšně vrátit k úplnému zálohování, které je neplatné podle výše uvedeného scénáře: Nespoléhejte se na obnovení VERIFYONLY a ověřte, že zálohování je možné obnovit, aniž by došlo k výše uvedenému problému. OBNOVENÍ VERIFYONLY proti zálohování protokolů obvykle selže společně se stejnou chybou jako skutečný protokol OBNOVENÍ popsaný výše.
Proto je důležité zajistit, aby v kontextu, kde je možné povolit transparentní šifrování dat a kompresi zálohování, všechny instance SQL Serveru 2019 využívající zálohy z jiných instancí SQL Serveru 2019 obdržely CU16 (nebo novější) před instancemi, které generují záložní materiál. Příkladem takové situace je architektura přesouvání protokolů: nejprve upgradovat sekundární instance.
Po vytvoření zálohy transakčního protokolu s kompresí obvykle není možné ji znovu vytvořit bez komprese. Upgrade primárního serveru pro přesouvání protokolů na SQL Server 2019 CU16 nebo novější v takovém kontextu by proto přerušil úlohy obnovení, dokud se také neupgraduje sekundární server.
Nekomprimované zálohování databáze s povoleným transparentním šifrováním dat, komprimovaná záloha databáze, která není povolená pro transparentní šifrování dat, nebo nekomprimovaná záloha databáze, která není povolena pro transparentní šifrování dat, nebude používat nový formát zálohování zavedený v CU16 a může být obnoven v instanci SQL Serveru 2019 libovolné verze.
Proto je nutné zakázat kompresi zálohování, pokud plánujete obnovit materiál databáze s podporou transparentního šifrování dat (úplné zálohování nebo zálohování transakčních protokolů) do všech instancí SQL Serveru dřívějších verzí před SQL Serverem 2019 CU16.
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a opravy zabezpečení, které byly v předchozím sestavení. Doporučujeme nainstalovat nejnovější build pro vaši verzi SQL Serveru:
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Odkazy
Přečtěte si o terminologii, kterou Microsoft používá k popisu aktualizací softwaru.