Aktualizacja : @AmitBanerjee - starszy menedżer programu dla grupy produktów Microsoft SQL Server potwierdził, że MS zajmie się problemem, ponieważ jest on wadą.
Czy ktoś napotkał problem z przywracaniem kopii zapasowych wykonanych na SQL Server 2016 z włączonym TDE i korzystających z MAXTRANSFERSIZE
> 65536 (w moim przypadku wybrałem 65537, aby móc kompresować bazę danych TDE ) i CHECKSUM
?
Poniżej znajduje się 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
Wykonaj kopię zapasową tylko z kopią… zrób to dwa razy ..
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
Teraz zrób verifyonly
...
restore verifyonly from disk = 'D:\temporary-short-term\test_restore_KIN_test_restore_1.bak'
Komunikat o błędzie :
Msg 3241, poziom 16, stan 40, wiersz 11 Rodzina mediów na urządzeniu „D: \ tymczasowo-krótkoterminowa \ test_restore_KIN_test_restore_1.bak” jest niepoprawnie utworzona. SQL Server nie może przetworzyć tej rodziny mediów. Msg 3013, poziom 16, stan 1, wiersz 11 WERYFIKUJ BAZA DANYCH kończy się nieprawidłowo.
Wyniki (1 = ON, 0 = OFF) z różnymi kombinacjami:
+-------------------------+-------------+----------+--------+
| 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 |
+-------------------------+-------------+----------+--------+
Problem występuje w dniu:
Microsoft SQL Server 2016 (RTM-CU1) (KB3164674) - 13.0.2149.0 (X64) 11 lipca 2016 22:05:22 Prawa autorskie (c) Microsoft Corporation Enterprise Edition (64-bit) w systemie Windows Server 2012 R2 Standard 6.3 (kompilacja 9600 :)
FORMAT
nadpisuje również nagłówek i nie dzieje się tak podczas używaniaFORMAT
. Nadal jest to tajemnicą, dlaczego nagłówek jako kopia zapasowa (backup lub jako całość) zostanie uszkodzona podczas używaniaMAXTRANSFERSIZE
iCHECKSUM
razem wraz z INIT. To nigdy nie miało miejsca w niższych wersjach, ale w tych nie byłoMAXTRANSFERSIZE
. Dzięki za odpowiedź. Utrzyma to otwarte, jeśli ktoś ma więcej informacji.