MSSQLSERVER_3168
Область применения: SQL Server
Сведения
Атрибут | Значение |
---|---|
Название продукта | SQL Server |
ИД события | 3168 |
Источник событий | MSSQLSERVER |
Компонент | SQLEngine |
Символическое имя | LDDB_SYSTEMWRONGVER |
Текст сообщения | Резервную копию системной базы данных на устройстве %ls восстановить невозможно, поскольку она была создана на сервере другой версии (%ls), отличной от версии данного сервера (%ls). |
Описание
Вы не можете восстановить резервную копию системной базы данных (master, model или msdb) на серверной сборке, которая отличается от сборки, на которой была создана резервная копия.
Примечание.
Установка обновления обслуживания, например накопительного обновления или пакета обновления или GDR, изменяет номер сборки сервера. Сборки сервера всегда добавочные.
Возможные причины
Схема базы данных для системных баз данных может быть изменена во всех сборках сервера. Чтобы убедиться, что изменение схемы не приводит к несоответствиям, инструкция RESTORE сравнивает номер сборки сервера файла резервной копии с номером сборки сервера, на котором вы пытаетесь восстановить резервную копию. Если сборки отличаются, инструкция выдает сообщение об ошибке "3168" , а операция восстановления завершается ненормально.
Ниже приведены некоторые сценарии, в которых может возникнуть эта проблема:
Вы пытаетесь восстановить системную базу данных на сервере A из резервной копии, которая выполняется на сервере B. СерверЫ A и B находятся на разных сборках сервера. Например, на сервере А может быть установлена сборка первоначальной версии, а на сервере Б — сборка с пакетом обновления 1 (SP1).
Вы пытаетесь восстановить системную базу данных из резервной копии, которая выполняется на том же сервере. Однако сервер выполнял другую сборку при запуске процесса резервного копирования. То есть сервер был обновлен после создания резервной копии.
Действие пользователя
Чтобы разрешить эту проблему, выполните следующие действия:
Примечание.
Для следующих процедур Сервер A — это исходный сервер SQL Server, на котором выполняется резервное копирование, и сервер B — целевой сервер SQL Server, на котором вы пытаетесь восстановить резервную копию:
Определите версию сервера B (версия B) с помощью следующего запроса:
SELECT @@VERSION;
Выполните запрос, аналогичный следующему, чтобы определить версию SQL Server, которая выполнялась при создании исходной резервной копии (версия A):
RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'
Просмотрите значения
SoftwareVersionMajor
,SoftwareVersionMinor
а такжеSoftwareVersionBuild
столбцы, чтобы определить сборку исходного сервера, который использовался при создании резервной копии. Например, предположим, что значения приведены следующим образом:- SoftwareVersionMajor: 15
- SoftwareVersionMinor: 0
- SoftwareVersionBuild: 4236 В этом случае исходная версия SQL Server при создании резервной копии — 15.0.4236.
Используйте таблицы полного списка версий SQL Server или электронную таблицу Excel, чтобы определить версию SQL Server, соответствующую сборке. Например, 15.0.4236 сопоставляется с SQL Server 2019 CU16+GDR (версия A).
Используйте один из следующих методов.
Если версия A больше версии B, используйте сведения, которые содержатся в последних обновлениях и журнале версий SQL Server , чтобы обновить сервер B до той же сборки, что и версия A.
Если версия A меньше версии B, временно удалите последующие обновления, выполнив следующие действия.
В панель управления выберите "Программы > и компоненты", а затем выберите "Просмотр установленных обновлений".
Найдите запись, соответствующую каждому из последующих пакетов обновления, которые соответствуют версии B.
Нажмите и удерживайте (или щелкните правой кнопкой мыши) запись, а затем нажмите кнопку "Удалить".
После проверки того, что версия B совпадает с версией A, повторите операцию восстановления базы данных master на сервере B.
(Рекомендуется) Обновите сервер B до последней доступной версии, а затем создайте новую резервную копию системных баз данных.
См. также
Ограничения на восстановление системных баз данных (SQL Server)