MSSQL 2014: O hash já foi aplicado à página lógica no banco de dados

Microsoft.SQLServer.2014.Logical_page_in_database_is_already_hashed_1_5_Rule (Rule)

Este erro ocorre quando o SQL Server tenta aplicar o hash à página lógica \%S_PGID do banco de dados ID\%d, e a página já está na tabela de hash do SQL Server.

Knowledge Base article:

Resumo

Este erro ocorre quando o SQL Server tenta aplicar o hash à página lógica %S_PGID do banco de dados ID%d, e a página já está na tabela de hash do SQL Server.

Ele costuma ocorrer como um efeito colateral de outros erros de dados que podem ser normalmente detectados através da execução do DBCC CHECKDB sem uma cláusula de reparo.

Resoluções

Analise o log de erros do SQL Server e execute o DBCC CHECKDB com a cláusula de reparo apropriada no banco de dados. Se o erro envolver uma página de índice, use a cláusula REPAIR_REBUILD. Se o erro envolver uma página de dados, talvez seja necessário usar a cláusula REPAIR_ALLOW_DATA_LOSS. Caso você não possa permitir a perda de dados, o que é provável, será preciso realizar a restauração a partir de um backup limpo conhecido. Se o problema persistir, contate o provedor de suporte. Revise a saída gerada por DBCC CHECKDB.

Importante: se a execução do DBCC CHECKDB com uma das cláusulas de reparo não corrigir o problema do índice ou se você não estiver certo do efeito que o DBCC CHECKDB com uma cláusula de reparo surtirá em seus dados, contate o provedor de suporte.

Verifique junto ao fornecedor do hardware se o subsistema do disco que está sendo usado pelo SQL Server está nos níveis de firmware e hardware recomendados, para os quais há suporte.

Se o DBCC CHECKDB não encontrar nenhum erro ou se erros forem encontrados e corrigidos para que as instruções DBCC subsequentes não indiquem erros, mas esse erro ocorrer novamente, contate o provedor de suporte. Deixe os logs de erro do SQL Server e a saída de DBCC CHECKDB e de sp_configure disponíveis para revisão.

Parâmetros Substituíveis

Nome

Descrição

Valor padrão

Habilitado

Habilita ou desabilita o fluxo de trabalho.

Sim

Prioridade

Define a Prioridade do Alerta.

1

Gravidade

Define a Severidade do Alerta.

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: O hash já foi aplicado à página lógica no banco de dados
{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>