Поделиться через


MSSQLSERVER_8992

Область применения:SQL Server

Сведения

Товар значение
Название продукта SQL Server
ИД события 8992
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя DBCC3_CHECK_CATALOG
Текст сообщения Проверка сообщения каталога: ошибка уровня [LEVEL], состояние [STATE]: MESSAGE.

Примечание.

8992. Сообщение об ошибке ссылается на другое конкретное сообщение (от 3851 до 3858) о фактической несогласованности.

Описание

DBCC CHECKCATALOG или DBCC CHECKDB обнаружил несоответствие в таблицах системных метаданных для указанного объекта. То есть существует несоответствие между записанным идентификатором объекта и объектом, указанным в сообщении об ошибке.

Эта ошибка может возникать при обновлении одной или нескольких системных таблиц вручную, что создает несоответствие в системных метаданных. Например, можно вручную удалить объект из sysobjects таблицы без удаления связанных строк в других таблицах, таких как sysindexes и syscolumns.

Эта ошибка может возникать при выполнении DBCC CHECKDB базы данных, которая была обновлена с SQL Server 2000 (8.x) до более поздней версии SQL Server. В SQL Server 2000 (8.x) DBCC CHECKDB не включал DBCC CHECKCATALOG функции, поэтому ошибка не перехватывалась перед обновлением, если DBCC CHECKCATALOG только не выполняется в базе данных в SQL Server 2000 (8.x).

Вы можете увидеть любую из следующих ошибок вместе с ошибкой 8992:

Идентификатор сообщения Текст сообщения
3851 An invalid row (%ls) was found in the system table sys.%ls%ls.
3852 Row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls.
3853 Attribute (%ls) of row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls.
3854 Attribute (%ls) of row (%ls) in sys.%ls%ls has a matching row (%ls) in sys.%ls%ls that is invalid.
3855 Attribute (%ls) exists without a row (%ls) in sys.%ls%ls.
3856 Attribute (%ls) exists but should not for row (%ls) in sys.%ls%ls.
3857 The attribute (%ls) is required but is missing for row (%ls) in sys.%ls%ls.
3858 The attribute (%ls) of row (%ls) in sys.%ls%ls has an invalid value.

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

Удаление и повторное создание указанного объекта

Если возможно, удалите и повторно создайте указанный объект. Например, если объект является хранимой процедурой или определяемым пользователем типом, повторное создание объекта может устранить проблему.

Восстановление из резервной копии

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

Экспорт данных в новую базу данных

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

DBCC CHECKDB не может исправить эту ошибку

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

Не обновляйте системные таблицы вручную

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

При обновлении системной таблицы вручную

Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.

Запуск базы данных с системной таблицей, которая была обновлена вручную

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.

Выполните команду DBCC CHECKDB после обновления системной таблицы вручную.

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.