MSSQLSERVER_3859

Применимо к:SQL Server

Сведения

Атрибут значение
Название продукта SQL Server
Идентификатор события 3859
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя DBCC_CHECKCAT_DIRECT_UPDATE
Текст сообщения Предупреждение. Системный каталог был обновлен непосредственно в идентификаторе базы данных %d, недавно в %S_DATE

Пояснение

Эта ошибка означает, что пользователь инициировал изменения в системных таблицах. Обновление системных таблиц вручную не поддерживается. Системные таблицы должны обновляться только ядром СУБД SQL Server. При обнаружении пользователем изменений в системных таблицах SQL Server возникает ошибка 3859 в следующих двух сценариях:

  • Сценарий 1

    Событие, похожее на следующее, регистрируется в журнале ошибок SQL Server или в журнале приложений в средстве просмотра событий при запуске базы данных SQL Server, содержащей системную таблицу, которая была обновлена вручную:

    Имя журнала: приложение
    Источник: идентификатор события MSSQLSERVER: 3859
    Категория задачи: Сервер
    Уровень: Сведения
    Описание. Предупреждение: системный каталог был обновлен непосредственно в идентификаторе базы данных %d, недавно в date_time

  • Сценарий 2

    При выполнении команды DBCC_CHECKDB после обновления системной таблицы вручную возвращается предупреждение наподобие следующего:

    Результаты выполнения команды DBCC для "имя_базы_данных".
    Сообщение 8992, уровень 16, состояние 1, строка 1
    Проверьте каталог msg 3859, State 1: Предупреждение: системный каталог был обновлен непосредственно в идентификаторе базы данных %d, недавно в date_time.
    CHECKDB нашла 0 ошибок размещения и 0 ошибок согласованности в базе данных "имя_базы_данных".
    Выполнение инструкции DBCC завершено. Если инструкция DBCC выдает сообщения об ошибках, обратитесь к системному администратору.

Действие пользователя

Чтобы решить эту проблему, используйте один из указанных ниже способов.

  • Метод 1

    При наличии чистой резервной копии базы данных восстановите базу данных из нее.

    Заметка

    Этот метод работает только в том случае, если в резервной копии нет несогласованности метаданных.

  • Метод 2.

    Если восстановить базу данных из резервной копии не удается, экспортируйте данные и объекты в новую базу данных. Затем перенесите содержимое базы данных, обновленной вручную, в новую базу данных. Обратите внимание, что несоответствия в системных каталогах невозможно исправить с помощью параметров восстановления команд DBCC CHECKDB. Так как команда не может исправить поврежденные метаданные, она не предоставляет рекомендуемого уровня восстановления.

    Заметка

    Данные из системных таблиц можно просмотреть с помощью представлений системных каталогов.

Дополнительные сведения

Дополнительные сведения см. в статье " Системные базовые таблицы".