Tabellenfehler: Unerwarteter Seitentyp

Microsoft.SQLServer.2008.Table_error___Unexpected_page_type__1_5_Rule (Rule)

Knowledge Base article:

Zusammenfassung

Die Seite P_ID wies einen Seitentyp auf, der für den Code, von dem sie interpretiert werden sollte, nicht erwartet wurde. Die Seite ist jedoch als zugewiesen gekennzeichnet. Aus diesem Grund versucht der DBCC-Code, sie zu interpretieren.

Die unterschiedlichen Seitentypen lauten wie folgt:

1 - Page::DATA_PAGE: Eine Datenseite in einem Heap oder gruppierten Index.

2 - Page::INDEX_PAGE: Eine Indexseite (B-Struktur) in der Struktur eines gruppierten oder nicht gruppierten Index oder das Blatt eines nicht gruppierten Index.

3 - Page::TEXT_MIX_PAGE: Eine Textseite, die von verschiedenen Textstrukturen gemeinsam genutzt wird.

4 - Page::TEXT_TREE_PAGE: Eine nicht gemeinsam genutzte Textseite.

5 - Nicht verwendet.

6 - Page::WF_PAGE: Eine Arbeitsdateiseite.

7 - Page::SORT_PAGE:Eine Seite, die in internen Sortiervorgängen verwendet wird.

8 - Page::GAM_PAGE: Eine GAM-Zuordnungstabelle.

9 - Page::SGAM_PAGE: Eine SGAM-Zuordnungstabelle.

10 - Page::IAM_PAGE: Eine Indexzuordnungstabelle.

11 - Page::PFS_PAGE: Eine Seite für den freien Speicherplatz und den Zuordnungsstatus.

12 - Nicht verwendet.

13 - Page::BOOT_PAGE: Eine datenbankweite Informationsseite.

14 - Page::SYSCONFIG_PAGE: Ein Serverkonfigurationsblock.

15 - Page::FILEHEADER_PAGE: Die erste Seite aller Dateien.

16 - Page::DIFF_MAP_PAGE: Ein differenzielles Bitmuster für ein GAM-Intervall.

17 - Page::ML_MAP_PAGE: Eine minimal protokollierte Blocktabelle für ein GAM-Intervall.

Statusbezogene Informationen:

Status 1: Die Seite, die auf der Blattebene einer kritischen Systemtabelle gefunden wurde, war keine Datenseite vom Typ 1.

Status 36: Der Seitentyp der Seite konnte nicht erkannt werden, oder die Seite ist als Seite gekennzeichnet, für die zuvor von DBCC bei einem Reparaturvorgang die Zuordnung aufgehoben wurde. Der Fehler wird bei der Page::Audit-Methode entdeckt.

Status 300: Die Seite ist eine Datenseite vom Typ 1, gehört aber zu einem nicht gruppierten Index.

Status 301: Die Seite ist eine Indexseite vom Typ 2, gehört aber zu einem Heap oder Textindex.

Status 302: Die Seite ist eine Textseite vom Typ 3 oder 4, gehört aber zu einem Heap oder einem gruppierten bzw. nicht gruppierten Index.

Status 303: Dieser Status wird von einem Code ausgegeben, der Seiten liest, die dem Inhalt nach einem Index zugeordnet sind (d. h. IAM-Seiten oder Datenseiten, Indexseiten oder Textseiten, die eine Kennzeichnung für die Zuordnung zu einer IAM-Seite haben). Der Code hat eine Seite gefunden, die keinem dieser Typen entspricht. Überprüfen Sie den Seitentyp, um den Typ der gefundenen Seite zu bestimmen.

Lösungen

HARDWAREFEHLER

Führen Sie eine Hardwarediagnose aus, und beheben Sie alle Probleme. Überprüfen Sie außerdem die Microsoft Windows NT-System- und -Anwendungsprotokolle und das SQL Server-Fehlerprotokoll, um zu ermitteln, ob der Fehler durch einen Hardwarefehler verursacht wurde. Beheben Sie alle hardwarebedingten Probleme.

Wenn Probleme in Bezug auf inkonsistente Daten dauerhaft auftreten, sollten Sie versuchen, verschiedene Hardwarekomponenten auszutauschen, um das Problem einzugrenzen. Stellen Sie sicher, dass der Schreibcache auf dem Datenträgercontroller im System nicht aktiviert ist. Wenn Sie vermuten, dass dies der Fall ist, wenden Sie sich an Ihren Hardwarehersteller.

Möglicherweise ist es auch hilfreich, auf ein vollständig neues Hardwaresystem umzusteigen und dabei die Laufwerke neu zu formatieren sowie das Betriebssystem neu zu installieren.

WIEDERHERSTELLEN AUS EINER SICHERUNG

Wenn das Problem nicht hardwarebedingt ist und eine bekanntermaßen fehlerfreie Sicherung zur Verfügung steht, stellen Sie die Datenbank mithilfe der Sicherung wieder her.

DBCC CHECKDB

Wenn keine fehlerfreie Sicherung verfügbar ist, führen Sie DBCC CHECKDB ohne REPAIR-Klausel aus, um den Umfang der Beschädigung zu ermitteln. Von DBCC CHECKDB wird eine zu verwendende REPAIR-Klausel empfohlen. Führen Sie DBCC CHECKDB anschließend mit der passenden REPAIR-Klausel aus, um die Beschädigung zu beheben.

Vorsicht: Wenn Sie nicht genau wissen, wie sich das Ausführen von DBCC CHECKDB mit einer REPAIR-Klausel auf die Daten auswirkt, wenden Sie sich an Ihren primären Anbieter für technischen Support, bevor Sie diese Anweisung ausführen.

Wenn das Ausführen von DBCC CHECKDB mit einer der REPAIR-Klauseln das Problem nicht behebt, wenden Sie sich an Ihren primären Anbieter für technischen Support.

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8938
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Tabellenfehler: Unerwarteter Seitentyp
{0}
Event LogApplication
CommentMom2008ID='{121A55A3-5324-47C2-BBF9-537DCD60C5C1}';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___Unexpected_page_type__1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{121A55A3-5324-47C2-BBF9-537DCD60C5C1}';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>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.2008.Table_error___Unexpected_page_type__1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>