Sintomi
In Microsoft SQL Server 2019 il ripristino del database compresso o dei backup dei log dei database con la crittografia dei dati trasparente (TDE) abilitata può causare l'errore seguente:
Msg 3241, Livello 16, Stato 18, Line <LineNumber>
La famiglia di supporti nel dispositivo '<nome file di backup>' non è formatta correttamente. SQL Server non può elaborare questa famiglia di supporti.
Soluzione alternativa
Per risolvere questo problema, non comprimere i backup dei database abilitati per TDE usando uno dei metodi seguenti:
-
Usare WITH COMPRESSION come descritto in BACKUP (Transact-SQL).Use WITH COMPRESSION as described in BACKUP (Transact-SQL).
-
Si basano sulla compressione di backup predefinito come descritto in Visualizzare o Configurare la compressione di backup predefinito Server Configuration Option.
Risoluzione
Informazioni sugli aggiornamenti cumulativi
Questo problema è stato risolto nel seguente aggiornamento cumulativo per SQL Server:
Aggiornamento cumulativo 16 per SQL Server 2019
Note È necessario creare i backup insieme a questa correzione per evitare il problema. L'installazione dell'cu corretta nell'istanza di destinazione e il tentativo di ripristinare lo stesso backup creato senza la correzione non funzioneranno.
Ulteriori informazioni
Importante: A partire da SQL Server 2019 CU16, la creazione di backup compressi (database o log) di database abilitati per TDE userà un nuovo formato di backup che può essere ripristinato solo in un'istanza in cui è installato CU16 o versione successiva.
Ripristino di un backup compresso di un database abilitato per TDE creato in CU16 o versione successiva in un'istanza di SQL Server 2019 della versione CU15 o precedente non riesce e causa gli errori seguenti:
-
RIPRISTINA DATABASE
Msg 3013, Livello 16, Stato 1, Line <LineNumber>
RESTORE DATABASE sta terminando in modo anomalo.
Msg 9004, Level 21, State 1, Line <LineNumber>
Si è verificato un errore durante l'elaborazione del log per il database 'TDE_DB'. Se possibile, esegui il ripristino dal backup. Se non è disponibile un backup, potrebbe essere necessario ricostruire il log.
-
RIPRISTINA LOG
Posizione: mediaRead.cpp:1018
Espressione: readSize <= m_Demand
SPID: 84
ID processo: ProcessID
Msg 3013, Livello 16, Stato 1, Line <LineNumber>
RESTORE LOG sta terminando in modo anomalo.
Msg 3624, Livello 20, Stato 1, Line <LineNumber>
Un controllo dell'asserzione di sistema non è riuscito. Per informazioni dettagliate, controllare il log degli errori di SQL Server. In genere, un errore di asserzione è causato da un bug del software o dal danneggiamento dei dati. Per verificare se il database è danneggiato, è consigliabile eseguire DBCC CHECKDB. Se hai accettato di inviare dump a Microsoft durante l'installazione, un mini dump verrà inviato a Microsoft. Un aggiornamento potrebbe essere disponibile da Microsoft nel Service Pack più recente o in un aggiornamento rapido dal supporto tecnico.
Note RESTORE HEADERONLY e RESTORE FILELISTONLY non sono interessati dal problema e funzionano in tutti i casi.
RESTORE VERIFYONLY può restituire correttamente un backup FULL non valido come nello scenario precedente: non fare affidamento su RESTORE VERIFYONLY per stabilire che il backup può essere ripristinato senza colpire il problema precedente. RESTORE VERIFYONLY in un backup del log in genere non riesce insieme allo stesso errore di un LOG DI RIPRISTINO effettivo descritto in precedenza.
Pertanto, è importante assicurarsi che in un contesto in cui TDE e Compressione di backup possono essere abilitati, qualsiasi istanza di SQL Server 2019 che consuma backup da altre istanze di SQL Server 2019 riceve CU16 (o versione successiva) prima delle istanze che generano il materiale di backup. Le architetture di spedizione log sono un primo esempio di una situazione di questo tipo: aggiornare prima le istanze secondarie.
Dopo aver creato un backup del log delle transazioni con la compressione, in genere non è possibile ricrearlo senza compressione. Pertanto, l'aggiornamento del server primario di spedizione log a SQL Server 2019 CU16 o versione successiva in tale contesto interromperebbe i processi di ripristino fino a quando anche il server secondario non viene aggiornato.
Un backup non compresso di un database abilitato per TDE, un backup compresso di un database non abilitato per TDE o un backup non compresso di un database non abilitato per TDE non userà il nuovo formato di backup introdotto in CU16 e potrà essere ripristinato in un'istanza di SQL Server 2019 di qualsiasi versione.
È pertanto necessario disabilitare la compressione del backup se si prevede di ripristinare un materiale di database abilitato per TDE (backup completo o backup del log delle transazioni) in qualsiasi istanza di SQL Server di versioni precedenti a SQL Server 2019 CU16.
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e le correzioni per la sicurezza inclusi nella build precedente. È consigliabile installare la build più recente per la versione di SQL Server:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.