MSSQL 2016: ошибка таблицы: перекрестная связь объектов

Microsoft.SQLServer.2016.Table_error__Cross_object_linkage_1_5_Rule (Rule)

Страница P_ID1 указывает (в форме "родители-потомки") на страницу (P_ID2) в другом объекте.

Knowledge Base article:

Причины

Страница P_ID1 указывает (в форме "родители-потомки") на страницу (P_ID2) в другом объекте.

Сведения по каждому состоянию:

Состояние 1 (I_ID1 = 0) : страницы из кучи. Страница P_ID1 имеет запись переадресации, которая указывает на строки в странице P_ID2.

Состояние 1 (I_ID1 > 0) : страницы из индексного B-дерева. Страница P_ID1 имеет указатель на дочернюю страницу, который указывает на страницу P_ID2.

Состояние 2 : страницы из текстового объекта. Одно из следующего истинно:

Страница P_ID1 является текстовой страницей, на которой есть запись с указателем дочернего объекта, указывающим на запись на странице P_ID2.

Страница P_ID1 является страницей индекса или страницей данных с внутристрочным текстовым корневым элементом, указывающим на текстовую страницу P_ID2.

Решения

СБОЙ ОБОРУДОВАНИЯ

Выполните диагностику оборудования и исправьте все найденные проблемы. Кроме того, просмотрите системный журнал и журнал приложений Microsoft Windows NT, а также журнал ошибок SQL Server, чтобы узнать, не является ли эта ошибка результатом сбоя оборудования. Устраните все неполадки оборудования.

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

Наконец, может оказаться полезным переключение на совершенно новую аппаратную систему, включая переформатирование жестких дисков и переустановку операционной системы.

ВОССТАНОВЛЕНИЕ ИЗ РЕЗЕРВНОЙ КОПИИ

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

DBCC CHECKDB

Если безошибочная резервная копия недоступна, выполните инструкцию DBCC CHECKDB без предложений восстановления, чтобы определить область повреждения. DBCC CHECKDB выработает рекомендацию по использованию предложения восстановления. Затем выполните инструкцию DBCC CHECKDB с соответствующим предложением восстановления, чтобы устранить повреждение.

ПРЕДУПРЕЖДЕНИЕ: Если вы не уверены, к какому результату может привести выполнение команды DBCC CHECKDB с инструкцией восстановления для данных, свяжитесь с непосредственным поставщиком услуг поддержки перед выполнением инструкции.

ВНИМАНИЕ: При восстановлении возможна потеря данных.

Восстановление зависит от состояния ошибки.:

Состояние 1 (куча). Перенаправляющая запись на странице P_ID1 будет удалена, а все некластеризованные индексы над данной кучей будут созданы заново.

Состояние 1 (сбалансированное дерево). Индекс, содержащий страницу P_ID1, будет создан заново.

Состояние 2. Две записи на страницах P_ID1 и P_ID2 будут удалены.

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

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

Переопределяемые параметры

Название

Описание

Значение по умолчанию

Включено

Включает или отключает рабочий процесс.

Да

Приоритет

Определяет приоритет предупреждения.

1

Серьезность

Определяет серьезность предупреждения.

2

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8925
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: ошибка таблицы: перекрестная связь объектов
{0}
Event LogApplication
CommentMom2016ID='{4131B4E6-3994-4D3F-83EA-228232BB9798}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.Table_error__Cross_object_linkage_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{4131B4E6-3994-4D3F-83EA-228232BB9798}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>8925</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.Table_error__Cross_object_linkage_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>