Ошибка таблицы: страница выходит за пределы диапазона этой базы данных

Microsoft.SQLServer.2008.Table_error__page_is_out_of_the_range_of_this_database_1_5_Rule (Rule)

Knowledge Base article:

Причины

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

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

Состояния 1, 2. Данная страница является обычной страницей, распределенной для страницы IAM. PAGETYPE = SinglePage.

Состояние 3. Данная страница является страницей IAM. PAGETYPE = IAM.

Состояние 10. Страница IAM сопоставляет недопустимый интервал. Начало данного интервала выходит за пределы используемой части файла. PAGETYPE = IAM.

Состояние 10. Данная страница является страницей IAM. PAGETYPE = IAM.

Состояние 10. Во время восстановления обнаружено, что первая страница IAM индекса имеет значение PageId_NULL. Это неустранимая ошибка для данной команды. PAGETYPE = IAM.

Решения

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

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

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

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

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

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

DBCC CHECKDB

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

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

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

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

ВНИМАНИЕ! Эта операция может привести к потере данных.

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8968
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Ошибка таблицы: страница выходит за пределы диапазона этой базы данных
{0}
Event LogApplication
CommentMom2008ID='{30E82644-85C2-40F4-AFF8-AB9983FAC0BA}';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.Table_error__page_is_out_of_the_range_of_this_database_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{30E82644-85C2-40F4-AFF8-AB9983FAC0BA}';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>8968</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.Table_error__page_is_out_of_the_range_of_this_database_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>