Pembaruan : @AmitBanerjee - Manajer Program Senior untuk Grup Produk Microsoft SQL Server mengonfirmasi bahwa MS akan memeriksa masalah ini karena itu adalah kerusakan.
Adakah yang mengalami masalah memulihkan cadangan yang diambil pada SQL Server 2016 dengan TDE diaktifkan dan menggunakan MAXTRANSFERSIZE
> 65536 (dalam kasus saya, saya telah memilih 65537 sehingga saya dapat mengompres basis data TDE ) dan CHECKSUM
?
Di bawah ini adalah 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
Ambil salinan lengkap hanya cadangan .. lakukan dua kali ..
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
Sekarang lakukan verifyonly
...
restore verifyonly from disk = 'D:\temporary-short-term\test_restore_KIN_test_restore_1.bak'
Pesan eror :
Msg 3241, Level 16, Negara 40, Jalur 11 Keluarga media di perangkat 'D: \ temporary-short-term \ test_restore_KIN_test_restore_1.bak' salah terbentuk. SQL Server tidak dapat memproses keluarga media ini. Msg 3013, Level 16, Negara 1, Baris 11 VERIFIKASI DATABASE berakhir secara tidak normal.
Hasil (1 = ON, 0 = OFF) dengan kombinasi berbeda:
+-------------------------+-------------+----------+--------+
| 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 |
+-------------------------+-------------+----------+--------+
Masalahnya terjadi pada:
Microsoft SQL Server 2016 (RTM-CU1) (KB3164674) - 13.0.2149.0 (X64) 11 Jul 2016 22:05:22 Hak cipta (c) Edisi Microsoft Corporation Enterprise (64-bit) pada Windows Server 2012 R2 Standar 6.3 (Build 9600) :)
FORMAT
header akan menimpa juga dan itu tidak terjadi saat menggunakanFORMAT
. Masih ini merupakan misteri mengapa header cadangan (atau cadangan secara keseluruhan) rusak saat menggunakanMAXTRANSFERSIZE
danCHECKSUM
bersama dengan INIT. Ini tidak pernah terjadi pada versi yang lebih rendah tetapi pada mereka tidak adaMAXTRANSFERSIZE
. Terima kasih atas jawaban anda. Ini akan tetap terbuka jika seseorang memiliki info lebih lanjut.