Sintomi
In Microsoft SQL Server 2019, il ripristino del database compresso o dei backup dei log dei database con Transparent Data Encryption (TDE) abilitato può causare l'errore seguente:
Nota
- Messaggio 3241, livello 16, stato 18, riga <LineNumber>
- Il formato del gruppo di supporti nel dispositivo "<nome >file di backup" non è corretto. SQL Server non è in grado di elaborare questo gruppo di supporti.
Soluzione alternativa
Per risolvere questo problema, non comprimere i backup dei database abilitati per TDE utilizzando uno dei metodi seguenti:
- Utilizzare WITH COMPRESSION come descritto in BACKUP (Transact-SQL).
- Affidarsi alla compressione di backup predefinita come descritto in Visualizzare o configurare l'opzione di configurazione del server predefinita per la compressione di backup.
Risoluzione
Informazioni sull'aggiornamento cumulativo
Questo problema è stato risolto nel seguente aggiornamento cumulativo per SQL Server:
Aggiornamento cumulativo 16 per SQL Server 2019
Avvertenza È necessario creare i backup insieme a questa correzione per evitare il problema. L'installazione del CU fisso sull'istanza di destinazione e il tentativo di ripristinare lo stesso backup creato senza la correzione non funzioneranno.
Altre 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 con CU16 o versioni successive installate.
Il ripristino di un backup compresso di un database abilitato per TDE creato su CU16 o versione successiva in un'istanza di SQL Server 2019 della versione CU15 o precedente ha esito negativo e causa gli errori seguenti:
RIPRISTINA DATABASE
Nota
- Messaggio 3013, livello 16, stato 1, riga <LineNumber>
- RESTORE DATABASE sta terminando in modo anomalo.
- Messaggio 9004, livello 21, stato 1, riga <LineNumber>
- Si è verificato un errore durante l'elaborazione del log per il database 'TDE_DB'. Se possibile, esegui il ripristino da backup. Se non è disponibile un backup, potrebbe essere necessario ricostruire il log.
REGISTRO DI RIPRISTINO
Nota
- Posizione: mediaRead.cpp:1018
- Espressione: readSize <= m_Demand
- SPIID: 84
- ID processo: ProcessID
- Messaggio 3013, livello 16, stato 1, riga <LineNumber>
- RESTORE LOG sta terminando in modo anomalo.
- Messaggio 3624, livello 20, stato 1, riga <LineNumber>
- 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 da un danneggiamento dei dati. Per verificare il danneggiamento del database, è consigliabile eseguire DBCC CHECKDB. Se hai accettato di inviare dump a Microsoft durante l'installazione, verrà inviato un mini dump a Microsoft. Un aggiornamento potrebbe essere disponibile da Microsoft nel Service Pack più recente o in un hotfix dal supporto tecnico.
Avvertenza RESTORE HEADERONLY e RESTORE FILELISTONLY non sono interessati dal problema e funzioneranno in tutti i casi.
RESTORE VERIFYONLY può restituire correttamente per un backup COMPLETO non valido in base allo scenario precedente: non fare affidamento su RESTORE VERIFYONLY per stabilire che il backup può essere ripristinato senza riscontrare il problema di cui sopra. RESTORE VERIFYONLY su un backup di log di solito fallisce insieme con lo stesso errore di un vero e proprio RESTORE LOG descritto in precedenza.
Pertanto, è importante assicurarsi che in un contesto in cui è possibile abilitare TDE e la compressione di backup, tutte le istanze di SQL Server 2019 che usano backup da altre istanze di SQL Server 2019 ricevano CU16 (o versione successiva) prima delle istanze che generano il materiale di backup. Le architetture di log shipping sarebbero un ottimo esempio di tale situazione: aggiornare prima le istanze secondarie.
Dopo aver creato un backup del log delle transazioni con compressione, in genere non è possibile ricrearlo senza compressione. Pertanto, l'aggiornamento del server primario per log shipping a SQL Server 2019 CU16 o versione successiva in tale contesto interromperebbe i processi di ripristino fino a quando non viene aggiornato anche il server secondario.
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 può essere ripristinato in un'istanza di SQL Server 2019 di qualsiasi versione.
È pertanto necessario disabilitare la compressione di 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.
Informazioni sugli aggiornamenti cumulativi per SQL Server
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni a caldo e di sicurezza presenti nella build precedente. È consigliabile installare la build più recente per la versione di SQL Server:
Aggiornamento cumulativo più recente per SQL Server 2019
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.