Gejala
Di Microsoft SQL Server 2019, memulihkan database terkompresi atau pencadangan log database yang mengaktifkan enkripsi data transparan (TDE, Transparent Data Encryption) dapat menyebabkan kesalahan berikut:
Msg 3241, Tingkat 16, Negara Bagian 18, Line <LineNumber>
Keluarga media pada perangkat '<nama file cadangan>' salah dibentuk. SQL Server tidak dapat memproses keluarga media ini.
Penyelesaian Masalah
Untuk mengatasi masalah ini, jangan padatkan cadangan database yang diaktifkan TDE dengan menggunakan salah satu metode berikut:
-
Gunakan WITH COMPRESSION seperti yang dijelaskan dalam BACKUP (Transact-SQL).
-
Mengandalkan default pemadatan cadangan seperti yang dijelaskan dalam Tampilkan atau Konfigurasi Opsi Konfigurasi Server default pemadatan cadangan.
Pemecahan Masalah
Informasi pembaruan kumulatif
Masalah ini telah diperbaiki dalam pembaruan kumulatif untuk SQL Server berikut:
Pembaruan Kumulatif 16 untuk SQL Server 2019
Note Anda perlu membuat cadangan bersama-sama dengan perbaikan ini untuk menghindari masalah. Menginstal CU tetap pada instans target dan mencoba memulihkan cadangan yang sama yang dibuat tanpa perbaikan tidak akan berfungsi.
Informasi selengkapnya
Penting: Dimulai dengan SQL Server 2019 CU16, pembuatan cadangan terkompresi (database atau log) database yang diaktifkan TDE akan menggunakan format cadangan baru yang hanya dapat dipulihkan pada instans yang memiliki CU16 atau yang lebih baru diinstal.
Memulihkan cadangan terkompresi database berkemampuan TDE yang dibuat di CU16 atau yang lebih baru pada contoh SQL Server 2019 versi CU15 atau yang lebih lama gagal dan menyebabkan kesalahan berikut:
-
MEMULIHKAN DATABASE
Msg 3013, Tingkat 16, Negara Bagian 1, Line <LineNumber>
PEMULIHAN DATABASE berakhir secara abnorrmal.
Msg 9004, Tingkat 21, Negara Bagian 1, Line <LineNumber>
Terjadi kesalahan saat memproses log untuk database 'TDE_DB'. Jika memungkinkan, pulihkan dari cadangan. Jika cadangan tidak tersedia, mungkin perlu menyusun ulang log.
-
PULIHKAN LOG
Lokasi: mediaRead.cpp:1018
Ekspresi: readSize <= m_Demand
SPID: 84
ID Proses: PROCESSID
Msg 3013, Tingkat 16, Negara Bagian 1, Line <LineNumber>
RESTORE LOG berakhir secara abnorrmal.
Msg 3624, Tingkat 20, Negara Bagian 1, Line <LineNumber>
Pemeriksaan penegasan sistem telah gagal. Periksa log kesalahan SQL Server untuk detailnya. Biasanya, kegagalan penegasan disebabkan oleh bug perangkat lunak atau kerusakan data. Untuk memeriksa kerusakan database, pertimbangkan untuk menjalankan CHECKDB DBCC. Jika Anda setuju untuk mengirim dump ke Microsoft selama penyiapan, dump mini akan dikirim ke Microsoft. Pembaruan mungkin tersedia dari Microsoft dalam Paket Layanan terbaru atau hotfix dari Dukungan Teknis.
Note PULIHKAN HEADERONLY dan PULIHKAN FILELISTONLY tidak terpengaruh oleh masalah dan akan berfungsi dalam semua kasus.
RESTORE VERIFYONLY dapat berhasil dikembalikan untuk cadangan LENGKAP yang tidak valid sesuai skenario di atas: jangan mengandalkan RESTORE VERIFYONLY untuk menetapkan bahwa cadangan dapat dipulihkan tanpa menekan masalah di atas. RESTORE VERIFYONLY terhadap pencadangan log biasanya akan gagal bersama dengan kesalahan yang sama seperti LOG PEMULIHAN aktual yang dijelaskan di atas.
Oleh karena itu, penting untuk memastikan bahwa dalam konteks di mana Kompresi TDE dan Cadangan mungkin diaktifkan, setiap instans SQL Server 2019 yang menggunakan cadangan dari instans SQL Server 2019 lainnya menerima CU16 (atau yang lebih baru) sebelum instans yang menghasilkan materi cadangan. Arsitektur pengiriman log akan menjadi contoh utama dari situasi seperti ini: upgrade instans sekunder terlebih dahulu.
Setelah pencadangan log transaksi dibuat dengan pemadatan, biasanya tidak dimungkinkan untuk membuatnya ulang tanpa pemadatan. Oleh karena itu, memutakhirkan server utama Pengiriman Log ke SQL Server 2019 CU16 atau yang lebih baru dalam konteks seperti itu akan merusak pekerjaan pemulihan hingga server sekunder juga dimutakhirkan.
Cadangan database yang tidak dikompresi dari database yang diaktifkan TDE, cadangan database yang dipadatkan yang tidak diaktifkan untuk TDE, atau cadangan database yang tidak dikompresi yang tidak diaktifkan untuk TDE tidak akan menggunakan format cadangan baru yang diperkenalkan di CU16, dan dapat dipulihkan pada instans SQL Server 2019 dari versi apa pun.
Oleh karena itu diperlukan untuk menonaktifkan pemadatan cadangan jika Anda berencana untuk memulihkan materi database berkemampuan TDE (cadangan penuh atau pencadangan log transaksi) ke instans SQL Server dari versi yang lebih lama sebelum SQL Server 2019 CU16.
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan perbaikan keamanan yang ada di build sebelumnya. Kami menyarankan agar Anda menginstal build terbaru untuk versi SQL Server Anda:
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.