MSSQL на Linux: ошибка таблицы; непредвиденный тип страницы

Microsoft.SQLServer.Linux.EventRule.DBEngine.Table_error___Unexpected_page_type__1_5_Rule (Rule)

Код DBCC пытается интерпретировать страницу P_ID, так как она отмечена как выделенная, но она имеет непредвиденный для кода тип.

Knowledge Base article:

Сводка

Код DBCC пытается интерпретировать страницу P_ID, так как она отмечена как выделенная, но она имеет непредвиденный для кода тип.

Различные типы страниц:

1 — Page::DATA_PAGE : страница данных находится в куче или кластеризованном индексе.

2 — Page::INDEX_PAGE :Страница индекса (B-дерево) в дереве кластеризованного или некластеризованного индекса, либо на листе некластеризованного индекса.

3 — Page::TEXT_MIX_PAGE : текстовая страница, общая для нескольких текстовых структур.

4 — Page::TEXT_TREE_PAGE : текстовая страница без общего доступа.

5 — Не используется.

6 — Page::WF_PAGE : страница рабочего файла.

7 — Page::SORT_PAGE :Страница, используемая для внутренней сортировки.

8 — Page::GAM_PAGE : карта распределения GAM.

9 — Page::SGAM_PAGE : карта распределения SGAM.

10 — Page::IAM_PAGE : карта распределения индекса.

11 — Page::PFS_PAGE : страница свободного пространства и состояния распределения.

12 — Не используется.

13 — Page::BOOT_PAGE : страница с информацией, относящейся к базе данных в целом.

14 — Page::SYSCONFIG_PAGE : блокировка конфигурации сервера.

15 — Page::FILEHEADER_PAGE : первая страница любого файла.

16 — Page::DIFF_MAP_PAGE : дифференциальная битовая карта для промежутка GAM.

17 — Page::ML_MAP_PAGE : минимально журналируемая карта расширения промежутка GAM.

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

Состояние 1 : на листе критически важной системной таблицы найдена страницы, но она не является страницей данных с типом = 1.

Состояние 36 : страница имеет полностью нераспознанный тип или отмечена как ранее снятая с распределения DBCC во время восстановления. Ошибка обнаружена с помощью метода Page::Audit.

Состояние 300 : страница имеет тип = 1, но относится к некластеризованному индексу.

Состояние 301 : страница является страницей индекса с типом = 2, но относится к куче или текстовому индексу.

Состояние 302 : страница является текстовой страницей с типом = 3 или 4, но относится к куче или кластеризованному или некластеризованному индексу.

Состояние 303 : это состояние получено из кода, читающего страницы, которые, предположительно, относятся к индексу (то есть, они являются IAM-страницами или страницами данных, индексов или текстовыми страницами, отмеченными как выделенные IAM-странице). Код обнаружил страницу, которая не является ни одним из этих типов. Проверьте тип страницы, чтобы определить тип страницы, которая была найдена

Разрешения

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

Проведите диагностику оборудования и исправьте все найденные проблемы. Также просмотрите системный журнал и журнал приложений Linux и журнал ошибок SQL Server, чтобы узнать, не является ли эта ошибка результатом сбоя оборудования. Устраните все неполадки оборудования.

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

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

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

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

DBCC CHECKDB

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

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

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

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

Имя

Описание

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

Включено

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

Да

Интервал (в секундах)

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

300

Приоритет

Определение приоритета оповещений.

1

Важность

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

2

Время синхронизации

Время синхронизации

 

Время ожидания (в секундах)

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

200

Время ожидания для подключения к базе данных (секунды)

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

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL на Linux: ошибка таблицы; непредвиденный тип страницы
{0}
CommentMom2017ID='{121A55A3-5324-47C2-BBF9-537DCD60C5C1}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Table_error___Unexpected_page_type__1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{121A55A3-5324-47C2-BBF9-537DCD60C5C1}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>8938</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.Table_error___Unexpected_page_type__1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>