Tabellenfehler: Objektübergreifende Verknüpfung

Microsoft.SQLServer.2008.Table_error__Cross_object_linkage_1_5_Rule (Rule)

Knowledge Base article:

Ursachen

Die Seite P_ID1 zeigt als übergeordnete Seite auf eine untergeordnete Seite (P_ID2) in einem anderen Objekt.

Statusbezogene Informationen:

Status 1 (I_ID1 = 0): Die Seiten stammen aus einem Heap. Die Seite P_ID1 enthält einen weiterleitenden Datensatz, der auf eine Zeile in der Seite P_ID2 zeigt.

Status 1 (I_ID1 > 0):: Die Seiten stammen aus einer Index-B-Struktur. Die Seite P_ID1 enthält einen Zeiger einer untergeordneten Seite, der auf die Seite P_ID2 zeigt.

Status 2: Die Seiten stammen aus einem Textobjekt. Es trifft eine der folgenden Bedingungen zu:

Die Seite P_ID1 ist eine Textseite, die einen Datensatz mit einem Zeiger einer untergeordneten Seite enthält, der auf einen Datensatz in der Seite P_ID2 zeigt.

Die Seite P_ID1 ist eine Index- oder Datenseite mit einem zeileninternen Textstamm, der auf die Textseite P_ID2 zeigt.

Lösungen

HARDWAREFEHLER

Führen Sie eine Hardwarediagnose aus, und beheben Sie alle erkannten 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 sich nicht sicher sind, wie sich DBCC CHECKDB mit Reparaturklausel auf Ihre Daten auswirkt, wenden Sie sich an Ihren primären Anbieter für technischen Support, bevor Sie diese Anweisung ausführen.

VORSICHT: Diese Reparatur kann zu Datenverlust führen.

Die Reparatur hängt vom Fehlerstatus ab:

Status 1 (Heap): Der weiterleitende Datensatz auf der Seite P_ID1 wird gelöscht, und alle nicht gruppierten Indizes für den Heap werden erneut erstellt.

Status 1 (B-Struktur): Der Index, der die Seite P_ID1 enthält, wird erneut erstellt.

Status 2: Die beiden Datensätze in den Seiten P_ID1 und P_ID2 werden gelöscht.

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.

Wenn keine Fehler mehr von DBCC CHECKDB gemeldet werden, der Fehler aber weiterhin auftritt, geben Sie die Einschränkungen aus, löschen Sie die Einschränkungen und erstellen Sie die Einschränkungen neu. Wenn der Fehler weiterhin angezeigt wird, übertragen Sie die Daten in eine neue Tabelle und löschen die vorhandene Tabelle.

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

2

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID8925
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Tabellenfehler: Objektübergreifende Verknüpfung
{0}
Event LogApplication
CommentMom2008ID='{4131B4E6-3994-4D3F-83EA-228232BB9798}';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__Cross_object_linkage_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{4131B4E6-3994-4D3F-83EA-228232BB9798}';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>8925</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__Cross_object_linkage_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>