Symptomy
W programie Microsoft SQL Server 2019 przywrócenie skompresowanych baz danych lub kopii zapasowych dziennika baz danych z włączonym przezroczystym szyfrowaniem danych (TDE) może spowodować następujący błąd:
Msg 3241, poziom 16, Stan 18, Linia <>
Rodzina multimediów na urządzeniu "<nazwa pliku kopii zapasowej>" jest nieprawidłowo utworzona. Program SQL Server nie może przetworzyć tej rodziny multimediów.
Obejście
Aby obejść ten problem, nie kompresuj kopii zapasowych baz danych z obsługą TDE przy użyciu jednej z następujących metod:
-
Użyj funkcji KOMPRESJA zgodnie z opisem w sekcji KOPIA ZAPASOWA (Transact-SQL).
-
Korzystaj z domyślnej kompresji kopii zapasowej zgodnie z opisem w temacie Wyświetlanie lub konfigurowanie domyślnej opcji konfiguracji serwera kompresji kopii zapasowej.
Rozwiązanie
Informacje o aktualizacji zbiorczej
Ten problem został rozwiązany w następującej aktualizacji zbiorczej dla programu SQL Server:
Aktualizacja zbiorcza 16 dla programu SQL Server 2019
Uwaga 16. Aby uniknąć problemu, musisz utworzyć kopie zapasowe razem z tą poprawką. Zainstalowanie stałej cu w wystąpieniu docelowym i próba przywrócenia tej samej kopii zapasowej utworzonej bez poprawki nie będzie działać.
Więcej informacji
Ważne: Począwszy od sql server 2019 CU16, tworzenie skompresowanych kopii zapasowych (bazy danych lub dziennika) baz danych z obsługą TDE będzie używać nowego formatu kopii zapasowej, który można przywrócić tylko w wystąpieniu, które ma cu16 lub nowsze zainstalowane.
Przywracanie skompresowanej kopii zapasowej bazy danych z obsługą TDE utworzonej w ramach protokołu CU16 lub nowszej w wystąpieniu programu SQL Server 2019 w wersji CU15 lub wcześniejszej kończy się niepowodzeniem i powoduje następujące błędy:
-
PRZYWRACANIE BAZY DANYCH
Msg 3013, poziom 16, Stan 1, Linia <>
PRZYWRACANIE BAZY DANYCH kończy się nieprawidłowo.
Msg 9004, Poziom 21, Stan 1, Linia <LineNumber>
Wystąpił błąd podczas przetwarzania dziennika dla bazy danych "TDE_DB". Jeśli to możliwe, przywróć z kopii zapasowej. Jeśli kopia zapasowa nie jest dostępna, może być konieczne odbudowanie dziennika.
-
PRZYWRACANIE DZIENNIKA
Lokalizacja: mediaRead.cpp:1018
Wyrażenie: readSize <= m_Demand
SPID: 84
Identyfikator procesu: Identyfikator procesu
Msg 3013, poziom 16, Stan 1, Linia <>
Przywracanie dziennika kończy się nieprawidłowo.
Msg 3624, poziom 20, Stan 1, Linia <LineNumber>
Sprawdzanie potwierdzenia systemu nie powiodło się. Szczegółowe informacje można znaleźć w dzienniku błędów programu SQL Server. Zazwyczaj błąd potwierdzenia jest powodowany przez usterkę oprogramowania lub uszkodzenie danych. Aby sprawdzić uszkodzenie bazy danych, rozważ uruchomienie bazy danych DBCC CHECKDB. Jeśli użytkownik zgodził się wysłać zrzuty do firmy Microsoft podczas instalacji, do firmy Microsoft zostanie wysłany mini dump. Aktualizacja może być dostępna od firmy Microsoft w najnowszym dodatku Service Pack lub w poprawce od pomocy technicznej.
Uwaga 16. FUNKCJA PRZYWRÓĆ NAGŁÓWEKONLY i PRZYWRÓĆ PLIKLISTONLY nie ma na to problemu i będzie działać we wszystkich przypadkach.
Przywracanie funkcji WERYFIKUJONLY może pomyślnie zostać zwrócone dla pełnej kopii zapasowej, która jest nieprawidłowa zgodnie z powyższym scenariuszem: nie polegaj na funkcji PRZYWRÓĆ VERIFYONLY, aby ustalić, że kopię zapasową można przywrócić bez rozwiązania powyższego problemu. PRZYWRACANIE FUNKCJI WERYFIKUJONLY podczas wykonywania kopii zapasowej dziennika zwykle kończy się niepowodzeniem z tym samym błędem co opisany powyżej rzeczywisty dziennik przywracania.
Dlatego ważne jest, aby upewnić się, że w kontekście, w którym może być włączona kompresja TDE i kompresja kopii zapasowej, wszystkie wystąpienia programu SQL Server 2019 używające kopii zapasowych z innych wystąpień programu SQL Server 2019 otrzymują cu16 (lub nowsze) przed wystąpieniami generującymi materiał kopii zapasowej. Architektury wysyłki dzienników byłyby doskonałym przykładem takiej sytuacji: najpierw uaktualnij wystąpienia pomocnicze.
Po utworzeniu kopii zapasowej dziennika transakcji z kompresją zwykle nie można utworzyć jej ponownie bez kompresji. Dlatego uaktualnienie serwera podstawowego wysyłki dziennika do programu SQL Server 2019 CU16 lub nowszego w takim kontekście spowodowałoby przerwanie przywracania zadań do czasu uaktualnienia serwera pomocniczego.
Nieskompresowana kopia zapasowa bazy danych z obsługą TDE, skompresowana kopia zapasowa bazy danych, która nie jest włączona dla TDE, lub nieskompresowana kopia zapasowa bazy danych, która nie jest włączona dla TDE, nie będzie używać nowego formatu kopii zapasowej wprowadzonego w cu16 i można ją przywrócić w wystąpieniu programu SQL Server 2019 dowolnych wersji.
Dlatego wyłączenie kompresji kopii zapasowej jest wymagane, jeśli planujesz przywrócenie materiałów bazy danych z obsługą TDE (pełna kopia zapasowa lub kopia zapasowa dziennika transakcji) do jakichkolwiek wystąpień programu SQL Server wcześniejszych wersji przed programem SQL Server 2019 CU16.
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które zostały wprowadzone w poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla twojej wersji programu SQL Server:
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2019
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Informacje
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.