Mise à jour : @AmitBanerjee - Responsable de programme principal pour le groupe de produits Microsoft SQL Server a confirmé que MS examinera le problème car il s'agit d'un défaut.
Quelqu'un a-t-il rencontré un problème de restauration des sauvegardes effectuées sur SQL Server 2016 avec TDE activé et en utilisant MAXTRANSFERSIZE
> 65536 (dans mon cas, j'ai choisi 65537 pour pouvoir compresser la base de données TDE ) et CHECKSUM
?
Ci-dessous une 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
Prendre une copie de sauvegarde complète seulement .. faites-le deux fois ..
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
Maintenant, faites un verifyonly
...
restore verifyonly from disk = 'D:\temporary-short-term\test_restore_KIN_test_restore_1.bak'
Message d'erreur :
Msg 3241, niveau 16, état 40, ligne 11 La famille de supports sur le périphérique «D: \ temporaire-à court terme \ test_restore_KIN_test_restore_1.bak» est incorrectement formée. SQL Server ne peut pas traiter cette famille de supports. Msg 3013, niveau 16, état 1, ligne 11 VERIFY DATABASE se termine anormalement.
Résultats (1 = ON, 0 = OFF) avec différentes combinaisons:
+-------------------------+-------------+----------+--------+
| 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 |
+-------------------------+-------------+----------+--------+
Le problème se produit sur:
Microsoft SQL Server 2016 (RTM-CU1) (KB3164674) - 13.0.2149.0 (X64) 11 juillet 2016 22:05:22 Copyright (c) Microsoft Corporation Enterprise Edition (64 bits) sur Windows Server 2012 R2 Standard 6.3 (Build 9600 :)
FORMAT
-tête remplacera également l'en-tête et cela ne se produit pas lors de l'utilisationFORMAT
. C'est toujours un mystère pour savoir pourquoi l'en-tête de sauvegarde (ou la sauvegarde dans son ensemble) est corrompu lors de l'utilisationMAXTRANSFERSIZE
etCHECKSUM
avec INIT. Cela n'est jamais arrivé sur les versions inférieures, mais dans celles-ci, il n'y en avait pasMAXTRANSFERSIZE
. Merci pour votre réponse. Gardera cela ouvert si quelqu'un a plus d'informations.