[Устарело] Не удается извлечь строку из страницы по RID из-за недопустимого ИД слота (slotid)

Microsoft.SQLServer.2008.Cannot_retrieve_row_from_page_by_RID_because_the_slotid_is_not_valid_1_5_Rule (Rule)

Knowledge Base article:

Сводка

Эта ошибка возникает при появлении ошибки в объекте, которому принадлежит данная строка. Эта проблема обнаружена во время считывания конкретной строки из данной логической страницы. Указанная ошибка может возникать из-за:

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

Другие ошибки в базе данных.

Решения

Выполните инструкцию DBCC CHECKDB, чтобы определить всю область влияния данной ошибки. Также проверьте наличие в журнале ошибок сообщений о других ошибках, таких как сообщения 25xx, которые часто сопровождают данную ошибку.

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

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

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

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

Если вы подозреваете ошибку оборудования, выполните аппаратную диагностику и устраните любые неполадки. Возможно, стоит выполнить совершенно новую установку, включая переформатирование жестких дисков и переустановку операционной системы. Также просмотрите журнал приложений Microsoft® Windows NT®, чтобы узнать, не является ли эта ошибка результатом сбоя оборудования.

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

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

Имя

Описание

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

Вкл.

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

Нет

Приоритет

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

1

Серьезность

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

2

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledFalse
Event_ID625
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Не удается извлечь строку из страницы по RID из-за недопустимого идентификатора области памяти
{0}
Event LogApplication
CommentMom2008ID='{4F5C29B3-E2EB-412A-8375-62D942E20CD4}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.2008.Cannot_retrieve_row_from_page_by_RID_because_the_slotid_is_not_valid_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="false" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{4F5C29B3-E2EB-412A-8375-62D942E20CD4}';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>625</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.Cannot_retrieve_row_from_page_by_RID_because_the_slotid_is_not_valid_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>