Update : @AmitBanerjee - Senior Program Manager für die Microsoft SQL Server-Produktgruppe hat bestätigt, dass MS das Problem untersuchen wird, da es sich um einen Defekt handelt.
Hat jemand Probleme beim Wiederherstellen von Sicherungen festgestellt, die auf SQL Server 2016 mit aktiviertem TDE und unter Verwendung von MAXTRANSFERSIZE
> 65536 erstellt wurden (in meinem Fall habe ich 65537 ausgewählt, damit ich die TDE-Datenbank komprimieren kann ) und CHECKSUM
?
Unten ist ein Repro:
--- create database
create database test_restore
go
-- create table
create table test_kin (fname char(10))
go
-- Enable TDE
use master
GO
CREATE CERTIFICATE test_restore WITH SUBJECT = 'test_restore_cert'
GO
SELECT name, pvt_key_encryption_type_desc, * FROM sys.certificates WHERE name = 'test_restore'
GO
use test_restore
go
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE test_restore
GO
alter database test_restore set encryption ON
Nehmen Sie nur eine vollständige Sicherungskopie. Machen Sie es zweimal.
backup database test_restore
to disk = 'D:\temporary-short-term\test_restore_KIN_test_restore_1.bak' -- change as per your location !!
with init, stats =10 -- overwrite ..using INIT !!
, maxtransfersize = 65537
, compression
,CHECKSUM
Jetzt mach ein verifyonly
...
restore verifyonly from disk = 'D:\temporary-short-term\test_restore_KIN_test_restore_1.bak'
Fehlermeldung :
Meldung 3241, Ebene 16, Status 40, Zeile 11 Die Medienfamilie auf Gerät 'D: \ temporär-kurzfristig \ test_restore_KIN_test_restore_1.bak' ist falsch gebildet. SQL Server kann diese Medienfamilie nicht verarbeiten. Meldung 3013, Ebene 16, Status 1, Zeile 11 VERIFY DATABASE wird abnormal beendet.
Ergebnisse (1 = EIN, 0 = AUS) mit verschiedenen Kombinationen:
+-------------------------+-------------+----------+--------+
| MAXTRANSFERSIZE (65537) | COMPRESSION | CHECKSUM | RESULT |
+-------------------------+-------------+----------+--------+
| 1 | 1 | 1 | FAIL |
| 1 | 1 | 0 | PASS |
| 1 | 0 | 1 | FAIL |
| 0 | 0 | 0 | PASS |
| 0 | 1 | 1 | PASS |
| 0 | 1 | 0 | PASS |
+-------------------------+-------------+----------+--------+
Das Problem tritt auf:
Microsoft SQL Server 2016 (RTM-CU1) (KB3164674) - 13.0.2149.0 (X64) 11. Juli 2016 22:05:22 Copyright (c) Microsoft Corporation Enterprise Edition (64-Bit) unter Windows Server 2012 R2 Standard 6.3 (Build 9600) :)
FORMAT
Header wird auch überschrieben und es passiert nicht, wenn er verwendet wirdFORMAT
. Dies ist jedoch ein Rätsel, warum der Backup-Header (oder das Backup als Ganzes) bei der Verwendung vonMAXTRANSFERSIZE
undCHECKSUM
zusammen mit INIT beschädigt wird . Dies geschah nie bei niedrigeren Versionen, aber bei diesen gab es keineMAXTRANSFERSIZE
. Danke für deine Antwort. Wird dies offen halten, wenn jemand mehr Informationen hat.