MSSQL 2014: Logische Seite in Datenbank bereits als Hash vorhanden

Microsoft.SQLServer.2014.Logical_page_in_database_is_already_hashed_1_5_Rule (Rule)

Dieser Fehler tritt auf, wenn SQL Server versucht, die logische Seite \%S_PGID der Datenbank-ID\%d in einen Hashwert zu überführen, die Seite jedoch in der SQL Server-Hashtabelle bereits vorhanden ist.

Knowledge Base article:

Zusammenfassung

Dieser Fehler tritt auf, wenn SQL Server versucht, die logische Seite %S_PGID der Datenbank-ID%d in einen Hashwert zu überführen, die Seite jedoch in der SQL Server-Hashtabelle bereits vorhanden ist.

Dieser Fehler ist normalerweise eine Nebenerscheinung anderer Datenfehler, die in der Regel durch die Ausführung von DBCC CHECKDB ohne REPAIR-Klausel ermittelt werden können.

Lösungen

Überprüfen Sie das SQL Server-Fehlerprotokoll, und führen Sie dann DBCC CHECKDB mit der geeigneten REPAIR-Klausel für die Datenbank aus. Wenn der Fehler eine Indexseite betrifft, verwenden Sie die REPAIR_REBUILD-Klausel. Wenn der Fehler eine Datenseite betrifft, kann es notwendig sein, die REPAIR_ALLOW_DATA_LOSS-Klausel zu verwenden. In dem wahrscheinlichen Fall, dass Sie keinen Datenverlust in Kauf nehmen möchten, müssen Sie die Datenbank aus einer bekannten fehlerfreien Sicherung wiederherstellen. Wenn das Problem weiterhin auftritt, wenden Sie sich an Ihren primären Anbieter für technischen Support. Halten Sie die Ausgabe von DBCC CHECKDB zur Überprüfung bereit.

Wichtig: Wenn das Indexproblem durch Ausführen von DBCC CHECKDB mit einer der REPAIR-Klauseln nicht behoben werden kann oder Sie nicht sicher sind, 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.

Stellen Sie mit Unterstützung Ihres Hardwareanbieters sicher, dass das von SQL Server verwendete Datenträgersubsystem den derzeit unterstützten und empfohlenen Firmware- und Hardwareebenen entspricht.

Wenn DBCC CHECKDB keine Fehler feststellt oder Fehler gefunden und korrigiert werden, sodass in den DBCC-Folgeanweisungen keine Fehler angezeigt werden und dieser Fehler dennoch wieder auftritt, wenden Sie sich an Ihren primären Anbieter für technischen Support. Stellen Sie die SQL Server-Protokolle und die Ausgaben von DBCC CHECKDB sowie sp_configure zur Überprüfung bereit.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

1

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID813
Event Source$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014: Logische Seite in Datenbank bereits als Hash vorhanden
{0}
Event LogApplication
CommentMom2014ID='{1DEC4754-8DE3-475E-AE58-EE2760B8F1C5}';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.Logical_page_in_database_is_already_hashed_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{1DEC4754-8DE3-475E-AE58-EE2760B8F1C5}';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>813</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.2014.Logical_page_in_database_is_already_hashed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>