MSSQL in Linux: Nella pagina logica del database è già stato eseguito l'hashing

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

Questo errore si verifica quando SQL Server prova a eseguire l'hashing della pagina logica \%S_PGID del database con ID\%d e la pagina si trova già nella tabella hash di SQL Server.

Knowledge Base article:

Riepilogo

Questo errore si verifica quando SQL Server prova a eseguire l'hashing della pagina logica %S_PGID del database con ID%d e la pagina si trova già nella tabella hash di SQL Server.

L'errore rappresenta in genere un effetto secondario di altri errori relativi ai dati che possono essere rilevati eseguendo l'istruzione DBCC CHECKDB senza clausola di correzione.

Risoluzioni

Esaminare il log degli errori di SQL Server, quindi eseguire l'istruzione DBCC CHECKDB con la clausola di correzione appropriata sul database. Se l'errore riguarda una pagina di indice, usare la clausola REPAIR_REBUILD. Se l'errore riguarda una pagina di dati, potrebbe essere necessario usare la clausola REPAIR_ALLOW_DATA_LOSS. Per evitare la perdita di dati, è necessario eseguire il ripristino da una copia di backup nota e valida. Se il problema persiste, contattare il servizio di supporto tecnico. Accertarsi di avere l'output di DBCC CHECKDB disponibile per la consultazione.

Importante: se l'esecuzione di DBCC CHECKDB con una delle clausole di correzione non è sufficiente per risolvere il problema dell'indice o in caso di dubbio sugli effetti di tale esecuzione sui dati, rivolgersi al servizio di supporto tecnico.

Verificare con il fornitore dell'hardware che il sottosistema di dischi usato da SQL Server sia ai livelli di firmware e hardware attualmente supportati e consigliati.

Se DBCC CHECKDB non rileva alcun errore o se gli errori individuati vengono corretti tanto che le successive istruzioni DBCC non indicano errori e tuttavia l'errore si ripete, rivolgersi al servizio di supporto tecnico. Tenere a disposizione i log degli errori di SQL Server e l'output di DBCC CHECKDB e sp_configure.

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

300

Priorità

Definisce la priorità dell'avviso.

1

Gravità

Definisce la gravità dell'avviso.

1

Tempo di sincronizzazione

Tempo di sincronizzazione

 

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

200

Timeout per la connessione di database (secondi)

Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL in Linux: Nella pagina logica del database è già stato eseguito l'hashing
{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.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Logical_page_in_database_is_already_hashed_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.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.Linux.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>
<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.Linux.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>