Atualização : @AmitBanerjee - Gerente de Programa Sênior do Grupo de Produtos Microsoft SQL Server confirmou que a MS analisará o problema por ser um defeito.
Alguém encontrou um problema ao restaurar backups feitos no SQL Server 2016 com o TDE ativado e usando MAXTRANSFERSIZE
> 65536 (no meu caso, eu escolhi 65537 para compactar o banco de dados TDE ) e CHECKSUM
?
Abaixo está uma reprodução:
--- 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
Faça backup completo da cópia completa .. faça-o duas vezes ..
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
Agora faça um verifyonly
...
restore verifyonly from disk = 'D:\temporary-short-term\test_restore_KIN_test_restore_1.bak'
Mensagem de erro :
Mensagem 3241, nível 16, estado 40, linha 11 A família de mídia no dispositivo 'D: \ temporário-curto-prazo \ test_restore_KIN_test_restore_1.bak' está formada incorretamente. O SQL Server não pode processar esta família de mídia. A mensagem 3013, nível 16, estado 1, linha 11 VERIFY DATABASE está sendo finalizada de maneira anormal.
Resultados (1 = ON, 0 = OFF) com diferentes combinações:
+-------------------------+-------------+----------+--------+
| 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 |
+-------------------------+-------------+----------+--------+
O problema ocorre em:
Microsoft SQL Server 2016 (RTM-CU1) (KB3164674) - 13.0.2149.0 (X64) 11 de julho de 2016 22:05:22 Copyright (c) Microsoft Corporation Enterprise Edition (64 bits) no Windows Server 2012 R2 Standard 6.3 (Build 9600 :)
FORMAT
cabeçalho também sobrescreverá e isso não acontece quando o usoFORMAT
. Ainda assim, é um mistério o motivo pelo qual o cabeçalho do backup (ou o backup como um todo) é corrompido ao usarMAXTRANSFERSIZE
eCHECKSUM
junto com o INIT. Isso nunca aconteceu nas versões inferiores, mas naquelas não haviaMAXTRANSFERSIZE
. Obrigado pela sua resposta. Manterá isso aberto se alguém tiver mais informações.