MSSQL 2014: 테이블 오류: 예기치 않은 페이지 유형입니다.

Microsoft.SQLServer.2014.Table_error___Unexpected_page_type__1_5_Rule (Rule)

페이지 P_ID에 페이지를 해석하려는 코드에 맞지 않는 페이지 유형이 있습니다. 이 페이지가 할당된 것으로 표시되었기 때문에 DBCC 코드에서 이를 해석하려고 시도하는 것입니다.

Knowledge Base article:

요약

페이지 P_ID에 페이지를 해석하려는 코드에 맞지 않는 페이지 유형이 있습니다. 이 페이지가 할당된 것으로 표시되었기 때문에 DBCC 코드에서 이를 해석하려고 시도하는 것입니다.

여러 페이지 유형은 다음과 같습니다.:

1 - Page::DATA_PAGE: 힙 또는 클러스터형 인덱스에 있는 데이터 페이지

2 - Page::INDEX_PAGE: 클러스터형 또는 비클러스터형 인덱스의 트리에 있는 인덱스(B-tree) 페이지 또는 클러스터되지 않은 인덱스의 리프

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 페이지나 데이터 페이지, 인덱스 페이지 또는 텍스트 페이지입니다. 코드가 이러한 유형이 아닌 페이지를 발견했습니다. 페이지 유형을 확인하여 발견된 페이지 유형을 확인합니다.

해결 방법

하드웨어 오류

하드웨어 진단을 실행하여 문제가 있으면 이를 해결하십시오. 또한 Microsoft Windows NT 시스템 및 응용 프로그램 로그와 SQL Server 오류 로그를 확인하여 이 오류가 하드웨어 오류로 인해 발생한 것인지 확인합니다. 하드웨어 관련 문제가 있으면 해결하십시오.

데이터 불일치 문제가 지속되면 여러 하드웨어 구성 요소를 교체하면서 문제를 파악해 보십시오. 디스크 컨트롤러에서 쓰기 캐싱을 사용하도록 설정하지 않았는지 확인합니다. 이것이 문제라고 생각되면 하드웨어 공급업체에 문의하십시오.

마지막으로, 디스크 드라이브를 다시 포맷하고 운영 체제를 다시 설치하는 등 새 하드웨어 시스템으로 완전히 전환하는 것이 도움이 될 수 있습니다.

백업에서 복원

하드웨어 관련 문제가 아니면 정상적인 백업(있는 경우)을 사용하여 데이터베이스를 복원하십시오.

DBCC CHECKDB

문제가 없는 백업을 사용할 수 없는 경우 복구 절 없이 DBCC CHECKDB를 실행하여 손상 범위를 확인합니다. DBCC CHECKDB에서 사용할 복구 절을 제시해 줍니다. 그러면 해당 복구 절을 사용해서 DBCC CHECKDB를 실행하여 손상을 복구하십시오.

주의: DBCC CHECKDB에 복구 절을 사용할 때 데이터에 어떤 영향이 있는지 잘 모를 경우 이 명령문을 실행하기 전에 주 지원 공급자에게 문의하십시오.

복구 절을 사용하여 DBCC CHECKDB를 실행해도 문제가 해결되지 않을 경우 주 지원 공급자에게 문의하십시오.

재정의 가능한 매개 변수

이름

설명

기본값

사용

워크플로를 사용하거나 사용하지 않도록 설정합니다.

우선 순위

알림 우선 순위를 정의합니다.

1

심각도

알림 심각도를 정의합니다.

2

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8938
Event Source$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014: 테이블 오류: 예기치 않은 페이지 유형입니다.
{0}
Event LogApplication
CommentMom2014ID='{121A55A3-5324-47C2-BBF9-537DCD60C5C1}';MOM2014GroupID={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.2014.Table_error___Unexpected_page_type__1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{121A55A3-5324-47C2-BBF9-537DCD60C5C1}';MOM2014GroupID={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="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>8938</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.2014.Table_error___Unexpected_page_type__1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>