Проблема
В Microsoft SQL Server 2019 восстановление сжатых резервных копий баз данных или журналов баз данных с включенным прозрачным шифрованием данных (TDE) может вызвать следующую ошибку:
Примечание
- MSG 3241, уровень 16, состояние 18, номер строки<>
- Неправильно сформировано семейство носителей "имя >файла резервной копии" на устройстве<. SQL Server не может обработать это семейство носителей.
Временное решение
Чтобы обойти эту проблему, не сжимайте резервные копии баз данных с поддержкой TDE с помощью одного из следующих методов:
- Используйте функцию WITH COMPRESSION, как описано в статье BACKUP (Transact-SQL).
- Использование сжатия резервных копий по умолчанию, как описано в разделе Просмотр или настройка параметра конфигурации сервера по умолчанию для сжатия резервных копий.
Решение
Сведения о накопительном пакете обновления
Эта проблема устранена в следующем накопительном пакете обновления для SQL Server:
Накопительный пакет обновления 16 для SQL Server 2019
Примечание Во избежание проблемы резервные копии необходимо создать вместе с этим исправлением. Установка исправленного CU на целевом экземпляре и попытка восстановить ту же резервную копию, созданную без исправления, не будут работать.
Дополнительные сведения
Важно
Начиная с SQL Server 2019 CU16 при создании сжатых резервных копий (баз данных или журналов) баз данных с поддержкой TDE будет использоваться новый формат резервного копирования, который можно восстановить только на экземпляре с установленным CU16 или более поздней версией.
Восстановление сжатой резервной копии базы данных с поддержкой TDE, созданной в CU16 или более поздней версии на экземпляре SQL Server 2019 версии CU15 или более ранней версии, завершается сбоем и вызывает следующие ошибки:
ВОССТАНОВИТЬ БАЗУ ДАННЫХ
Примечание
- MSG 3013, уровень 16, состояние 1, номер строки<>
- Аварийное завершение операции RESTORE DATABASE.
- Msg 9004, уровень 21, состояние 1, номер строки<>
- Произошла ошибка при обработке журнала для базы данных "TDE_DB". По возможности восстановите систему из резервной копии. Если резервная копия недоступна, может потребоваться перестроить журнал.
ВОССТАНОВИТЬ ЖУРНАЛ
Примечание
- Расположение: mediaRead.cpp:1018
- Выражение: readSize <= m_Demand
- СПИД: 84
- Идентификатор процесса: ProcessID
- MSG 3013, уровень 16, состояние 1, номер строки<>
- RESTORE LOG завершается некорректно.
- MSG 3624, уровень 20, состояние 1, номер строки<>
- Не удалось выполнить проверку утверждения системы. Дополнительные сведения см. в журнале ошибок SQL Server. Как правило, сбой утверждения вызван ошибкой программного обеспечения или повреждением данных. Чтобы выполнить проверку на наличие повреждений базы данных, рассмотрите возможность запуска DBCC CHECKDB. Если вы согласились отправлять дампы в Microsoft во время установки, мини-дамп будет отправлен в Microsoft. Обновление может быть доступно от корпорации Майкрософт в последнем пакете обновления или в исправлении от службы технической поддержки.
Примечание Эта проблема не затрагивает функции RESTORE HEADERONLY и RESTORE FILELISTONLY, и они будут работать во всех случаях.
Функция RESTORE VERIFYONLY может успешно вернуть ПОЛНУЮ резервную копию, которая является недопустимой согласно описанному выше сценарию: не полагайтесь на RESTORE VERIFYONLY, чтобы установить возможность восстановления резервной копии без возникновения вышеуказанной проблемы. Функция RESTORE VERIFYONLY для резервного копирования журнала обычно завершается ошибкой вместе с той же ошибкой, что и фактический журнал восстановления, описанный выше.
Поэтому важно убедиться, что в контексте, в котором могут быть включены TDE и сжатие резервных копий, все экземпляры SQL Server 2019, использующие резервные копии из других экземпляров SQL Server 2019, получают CU16 (или более позднюю версию) перед экземплярами, создающими материал резервной копии. Архитектуры доставки журналов были бы ярким примером такой ситуации: сначала обновить вторичные экземпляры.
После создания резервной копии журнала транзакций со сжатием обычно невозможно создать ее без сжатия. Таким образом, обновление основного сервера доставки журналов до SQL Server 2019 CU16 или более поздней версии в таком контексте приведет к нарушению заданий восстановления до тех пор, пока не будет обновлен дополнительный сервер.
Несжатая резервная копия базы данных с поддержкой TDE, сжатая резервная копия базы данных, для которой не включена функция TDE, или несжатая резервная копия базы данных, для которой не включена функция TDE, не будут использовать новый формат резервного копирования, представленный в CU16, и могут быть восстановлены на экземпляре SQL Server 2019 любых версий.
Таким образом, если вы планируете восстановить материал базы данных с поддержкой TDE (полную резервную копию или резервную копию журнала транзакций), необходимо отключить сжатие резервной копии в любых экземплярах SQL Server более ранних версий до SQL Server 2019 CU16.
Сведения о накопительных обновлениях для SQL Server
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые были в предыдущей сборке. Рекомендуется установить последнюю сборку для вашей версии SQL Server.
Последний накопительный пакет обновления для SQL Server 2019
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.