KB5014298 - OPRAVA: Během provádění příkazu OBNOVIT DATABÁZI NEBO PROTOKOLU OBNOVENÍ DOJDE K CHYBĚ 3241.

Platí pro
SQL Server 2019 on Windows

Příznaky

V Microsoft SQL Server 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:

Poznámka

  • Zpráva 3241, úroveň 16, stav 18, číslo řádku<>
  • Rodina médií v záložním souboru na> zařízení< je nesprávně vytvořená. SQL Server nemůže tuto řadu médií zpracovat.

Alternativní řešení

Pokud chcete tento problém obejít, nekomprimujte zálohy databází s povoleným transparentním šifrováním dat pomocí žádné z následujících metod:

Ř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 tomuto problému předešli, musíte společně s touto opravou vytvořit i zálohy. Instalace opravené CU na cílovou instanci a pokus o obnovení stejné zálohy vytvořené bez opravy nebude fungovat.

Další informace

Důležité

Počínaje verzí SQL Server 2019 CU16 se bude při vytváření komprimovaných záloh (databáze nebo protokol) databází s povoleným transparentním šifrováním dat používat nový formát zálohy, který je možné obnovit pouze v instanci s nainstalovanou CU16 nebo novější.

Obnovení komprimované zálohy databáze s povoleným transparentním šifrováním dat, která je vytvořena v CU16 nebo novější v instanci SQL Server 2019 verze CU15 nebo starší, selže a způsobí následující chyby:

  • OBNOVIT DATABÁZI

    Poznámka

    • Zpráva 3013, úroveň 16, stav 1, číslo řádku<>
    • RESTORE DATABASE se abnormálně ukončuje.
    • Zpráva 9004, úroveň 21, stav 1, číslo řádku<>
    • Při zpracování protokolu pro databázi TDE_DB došlo k chybě. Pokud je to možné, proveďte obnovení ze zálohy. Pokud záloha není k dispozici, bude pravděpodobně nutné znovu vytvořit protokol.
  • RESTORE LOG

    Poznámka

    • Umístění: mediaRead.cpp:1018
    • Výraz: readSize <= m_Demand
    • SPID: 84
    • ID procesu: ProcessID
    • Zpráva 3013, úroveň 16, stav 1, číslo řádku<>
    • RESTORE LOG se abnormálně ukončuje.
    • Zpráva 3624, úroveň 20, stav 1, číslo řádku<>
    • Kontrola kontrolního výrazu systému se nezdařila. Podrobnosti najdete v protokolu chyb systému SQL Server. Chyba kontrolního výrazu je obvykle způsobena chybou softwaru nebo poškozením dat. Chcete-li zkontrolovat poškození databáze, zvažte spuštění příkazu DBCC CHECKDB. Pokud jste během instalace souhlasili s odesíláním výpisů do Microsoftu, bude společnosti Microsoft odeslán minivýpis. Aktualizace může být k dispozici od Microsoftu v nejnovější aktualizaci Service Pack nebo v opravě hotfix od technické podpory.

Poznámka Příkazy RESTORE HEADERONLY a RESTORE FILELISTONLY nejsou tímto problémem ovlivněny a budou fungovat ve všech případech.

RESTORE VERIFYONLY se může úspěšně vrátit pro ÚPLNOU zálohu, která je neplatná podle výše uvedeného scénáře: nespoléhejte na RESTORE VERIFYONLY, abyste zjistili, že zálohu lze obnovit bez zasažení výše uvedeného problému. OVĚŘENÍ OBNOVENÍPOUZE proti záloze protokolu obvykle selže společně se stejnou chybou jako skutečný RESTORE LOG popsaný výše.

Proto je důležité zajistit, aby v kontextu, kdy mohou být povolené transparentní šifrování dat a komprese záloh, všechny instance SQL Server 2019 využívající zálohy z jiných instancí SQL Server 2019 obdržely CU16 (nebo novější) před instancemi, které generují záložní materiál. Architektury odesílání protokolů by byly ukázkovým příkladem takové situace: nejprve upgradujte sekundární instance.

Jakmile je záloha transakčního protokolu vytvořena s kompresí, obvykle není možné ji znovu vytvořit bez komprese. Upgrade primárního serveru pro odesílání protokolů na SQL Server 2019 CU16 nebo novější v takovém kontextu by proto přerušil úlohy obnovení, dokud nebude upgradován také sekundární server.

Nekomprimovaná záloha databáze s povoleným transparentním šifrováním dat, komprimovaná záloha databáze, která nemá povolené transparentní šifrování dat, nebo nekomprimovaná záloha databáze, která není povolená pro transparentní šifrování dat, nebude používat nový formát zálohy zavedený v CU16 a dá se obnovit v instanci SQL Server 2019 libovolných verzí.

Proto je nutné zakázat kompresi záloh, pokud plánujete obnovit databázový materiál s povoleným transparentním šifrováním dat (buď úplnou zálohu nebo zálohu transakčního protokolu) do všech instancí SQL Server starších verzí před verzí SQL Server 2019 CU16.

Informace o kumulativních aktualizacích pro SQL Server

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a opravy zabezpečení, které byly v předchozím buildu. Doporučujeme nainstalovat nejnovější build pro vaši verzi SQL Server:

Nejnovější kumulativní aktualizace pro SQL Server 2019

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

Reference

Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.