В сбалансированном дереве есть две страницы, связанные как родительская страница (P_ID2) и дочерняя (P_ID1). Текущий уровень (LEVEL1) в дочерней странице (P_ID1) не соответствует правилам уровней для сбалансированных деревьев при заданном уровне (LEVEL2) в родительской странице (P_ID2).
Правила уровней таковы, что, если у родительской страницы уровень X, у дочерней страницы должен быть следующий уровень:
уровень X-1, если данный индекс является некластеризованным;
уровень X-1, если индекс является кластеризованным, а дочерняя страница не находится на конечном уровне;
уровень 0, если индекс является кластеризованным, а дочерняя страница находится на конечном уровне; в этом случае уровень родительской страницы равен 0.
Чтобы найти неверную страницу, проверьте эти две страницы и наличие ошибок 2531 (несоответствие родственных уровней в сбалансированном дереве).
СБОЙ ОБОРУДОВАНИЯ
Выполните диагностику оборудования и исправьте все найденные проблемы. Кроме того, просмотрите системный журнал и журнал приложений Microsoft Windows NT, а также журнал ошибок SQL Server, чтобы узнать, не является ли эта ошибка результатом сбоя оборудования. Устраните все неполадки оборудования.
Если проблемы с несогласованностью данных возникают постоянно, то путем отключения различных аппаратных компонентов попытайтесь определить причину неполадки. Убедитесь, что в данной системе на контроллере диска не включено кэширование записи. Если есть основания полагать, что это может быть источником неполадки, обратитесь к поставщику оборудования.
Наконец, может оказаться полезным переключение на совершенно новую аппаратную систему, включая переформатирование жестких дисков и переустановку операционной системы.
ВОССТАНОВЛЕНИЕ ИЗ РЕЗЕРВНОЙ КОПИИ
Если неполадка не связана с оборудованием и есть безошибочная резервная копия, восстановите базу данных из этой копии.
DBCC CHECKDB
Если безошибочная резервная копия недоступна, выполните инструкцию DBCC CHECKDB без предложений восстановления, чтобы определить область повреждения. DBCC CHECKDB выработает рекомендацию по использованию предложения восстановления. Затем выполните инструкцию DBCC CHECKDB с соответствующим предложением восстановления, чтобы устранить повреждение.
ВНИМАНИЕ! Если есть сомнения в том, как инструкция DBCC CHECKDB с предложением восстановления повлияет на данные, то перед выполнением этой инструкции обратитесь к своему основному поставщику услуг технической поддержки.
Если выполнение инструкции DBCC CHECKDB с одним из предложений восстановления не устраняет неполадку, обратитесь к основному поставщику услуг технической поддержки.
Target | Microsoft.SQLServer.2008.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 8931 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2008ID='{103AD5CC-EB5B-431C-81C6-6766C166FC82}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.Table_error__B_tree_level_mismatch_page_does_not_match_level_from_parent__1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{103AD5CC-EB5B-431C-81C6-6766C166FC82}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>8931</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.2008.Table_error__B_tree_level_mismatch_page_does_not_match_level_from_parent__1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>