MSSQL en Windows: la página lógica de la base de datos ya está en hash

Microsoft.SQLServer.Windows.EventRule.DBEngine.Logical_page_in_database_is_already_hashed_1_5_Rule (Rule)

Este error se produce cuando SQL Server intenta aplicar un algoritmo hash a la página lógica \%S_PGID de la base de datos ID\%d y la página ya se encuentra en la tabla hash de SQL Server.

Knowledge Base article:

Resumen

Este error se produce cuando SQL Server intenta aplicar un algoritmo hash a la página lógica %S_PGID de la base de datos ID%d y la página ya se encuentra en la tabla hash de SQL Server.

Este error suele producirse como efecto secundario de otros errores de datos que pueden detectarse, por lo general, al ejecutar DBCC CHECKDB sin una cláusula de reparación.

Resoluciones

Revise el registro de errores de SQL Server y, a continuación, ejecute DBCC CHECKDB con la cláusula de reparación adecuada en la base de datos. Si el error afecta a una página de índice, use la cláusula REPAIR_REBUILD. Si el error afecta a una página de datos, puede ser necesario usar la cláusula REPAIR_ALLOW_DATA_LOSS. En el caso probable de que no pueda permitir la pérdida de datos, necesitará restaurar desde una copia de seguridad sin errores conocida. Si el problema continúa, póngase en contacto con su proveedor de soporte técnico principal. Tenga disponible la salida de DBCC CHECKDB para revisarla.

Importante: si al ejecutar DBCC CHECKDB con una de las cláusulas de reparación no se corrige el problema del índice o si no está seguro del efecto que pueda tener en sus datos DBCC CHECKDB con la cláusula de reparación, póngase en contacto con el proveedor de soporte técnico principal.

Compruebe con el proveedor de hardware que el subsistema de disco usado por SQL Server es compatible actualmente y se encuentra en los niveles de firmware y hardware recomendados.

Si DBCC CHECKDB no encuentra errores o si los errores se detectan y corrigen de manera que las instrucciones DBCC siguientes no indican errores, pero este error vuelve a ocurrir, póngase en contacto con el proveedor de soporte técnico principal. Tenga a mano los registros de errores de SQL Server y los resultados de DBCC CHECKDB y sp_configure para su revisión.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

300

Prioridad

Define la prioridad de alerta.

1

Gravedad

Define la gravedad de alerta.

1

Hora de sincronización

Hora de sincronización

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

200

Tiempo de expiración de la conexión de base de datos (segundos)

Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL en Windows: la página lógica de la base de datos ya está en hash
{0}
CommentMom2017ID='{1DEC4754-8DE3-475E-AE58-EE2760B8F1C5}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.Logical_page_in_database_is_already_hashed_1_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{1DEC4754-8DE3-475E-AE58-EE2760B8F1C5}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>813</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.Logical_page_in_database_is_already_hashed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>