Symptomer
I Microsoft SQL Server 2019 kan gendannelse af den komprimerede database eller logbackup af de databaser, der har aktiveret gennemsigtig datakryptering (TDE), medføre følgende fejl:
Msg 3241, niveau 16, stat 18, <linjenummer>
Mediefamilien på enheden "<sikkerhedskopifilnavn>" er forkert udformet. SQL Server kan ikke behandle denne mediefamilie.
Løsning
Du kan løse dette problem ved ikke at komprimere sikkerhedskopierne af TDE-aktiverede databaser ved hjælp af en af følgende metoder:
-
Brug WITH COMPRESSION som beskrevet i SIKKERHEDSKOPIERING (Transact-SQL).
-
Brug standardindstillingen for sikkerhedskopikomprimering som beskrevet i Vis eller Konfigurer standardindstillingen for serverkonfiguration af sikkerhedskopikomprimering.
Løsning
Oplysninger om samlet opdatering
Dette problem er rettet i følgende kumulative opdatering til SQL Server:
Samlet opdatering 16 til SQL Server 2019
Bemærk Du skal oprette sikkerhedskopierne sammen med denne løsning for at undgå problemet. Det fungerer ikke at installere den faste CU på destinationsforekomsten og forsøge at gendanne den samme sikkerhedskopi, der er oprettet uden rettelsen.
Flere oplysninger
Vigtigt!: Fra og med SQL Server 2019 CU16 vil oprettelsen af komprimerede sikkerhedskopier (database eller log) af TDE-aktiverede databaser bruge et nyt sikkerhedskopiformat, der kun kan gendannes på en forekomst, der har CU16 eller nyere installeret.
Gendannelse af en komprimeret sikkerhedskopi af en TDE-aktiveret database, der er oprettet på CU16 eller nyere på en SQL Server 2019-forekomst af version CU15 eller tidligere, mislykkes og medfører følgende fejl:
-
GENDAN DATABASE
Msg 3013, niveau 16, tilstand 1, linje <>
RESTORE DATABASE afsluttes unormalt.
Msg 9004, niveau 21, tilstand 1, <linjenummer>
Der opstod en fejl under behandling af logfilen for databasen 'TDE_DB'. Hvis det er muligt, kan du gendanne fra sikkerhedskopien. Hvis der ikke findes en sikkerhedskopi, kan det være nødvendigt at genopbygge logfilen.
-
GENDAN LOG
Placering: mediaRead.cpp:1018
Udtryk: readSize <= m_Demand
SPID: 84
Proces-id: Proces-id
Msg 3013, niveau 16, tilstand 1, linje <>
RESTORE LOG afsluttes unormalt.
Msg 3624, niveau 20, tilstand 1, linje <linjenummer>
Kontrol af system-programfejl mislykkedes. Kontrollér SQL Server-fejlloggen for at få flere oplysninger. Typisk skyldes en fejl i en påstand en softwarefejl eller beskadigelse af data. Hvis du vil kontrollere, om databasen er beskadiget, skal du overveje at køre DBCC CHECKDB. Hvis du har accepteret at sende dumps til Microsoft under installationen, sendes der en minidump til Microsoft. En opdatering kan være tilgængelig fra Microsoft i den nyeste servicepakke eller i et hotfix fra teknisk support.
Bemærk GENDAN HEADERONLY og GENDAN FILELISTONLY påvirkes ikke af problemet og fungerer i alle tilfælde.
RESTORE VERIFYONLY kan returneres for en fuld sikkerhedskopi, der er ugyldig i henhold til ovenstående scenarie: Du skal ikke stole på GENDAN VERIFYONLY for at fastslå, at sikkerhedskopien kan gendannes uden at ramme ovenstående problem. RESTORE VERIFYONLY mod en sikkerhedskopiering af logfilen mislykkes normalt sammen med den samme fejl som en faktisk GENDANNELSESLOG, der er beskrevet ovenfor.
Det er derfor vigtigt at sikre, at i en kontekst, hvor TDE og Sikkerhedskopiering kan være aktiveret, vil alle SQL Server 2019-forekomster, der bruger sikkerhedskopier fra andre SQL Server 2019-forekomster, modtage CU16 (eller nyere), før de forekomster, der genererer sikkerhedskopimaterialet. Logføringsarkitekturer ville være et godt eksempel på en sådan situation: opgrader sekundære forekomster først.
Når en sikkerhedskopi af transaktionsloggen er oprettet med komprimering, er det normalt ikke muligt at genoprette den uden komprimering. Derfor vil en opgradering af den primære server logforsendelse til SQL Server 2019 CU16 eller nyere i en sådan sammenhæng bryde gendannelsesjobbet, indtil den sekundære server også opgraderes.
En ukomprimeret sikkerhedskopi af en TDE-aktiveret database, en komprimeret sikkerhedskopi af en database, der ikke er aktiveret til TDE, eller en ukomprimeret sikkerhedskopi af en database, der ikke er aktiveret til TDE, bruger ikke det nye sikkerhedskopiformat, der blev introduceret i CU16, og kan gendannes på en SQL Server 2019-forekomst af alle versioner.
Det er derfor nødvendigt at deaktivere sikkerhedskopikomprimering, hvis du planlægger at gendanne et TDE-aktiveret databasemateriale (enten sikkerhedskopiering med fuld sikkerhedskopiering eller sikkerhedskopi af transaktionslogfiler) til sql Server-forekomster af tidligere versioner før SQL Server 2019 CU16.
Hver ny samlet opdatering til SQL Server indeholder alle de hotfixes og sikkerhedsrettelser, der var i det tidligere build. Vi anbefaler, at du installerer det nyeste build til din version af SQL Server:
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.