Le journal de la base de données n'est pas disponible

Microsoft.SQLServer.2008.The_log_for_database_is_not_available_1_5_Rule (Rule)

Knowledge Base article:

Résumé

Une erreur d'E/S liée à l'intégrité des données s'est produite pour la base de données spécifiée. Le journal ou la partie données de la base de données est peut-être endommagé. SQL Server a rendu le journal de cette base de données indisponible pour éviter d'autres problèmes d'intégrité des données. L'erreur d'E/S qui a généré le message 9001 doit être signalée dans le journal des erreurs SQL Server et/ou les journaux des événements Windows.

Cette erreur peut se produire en raison de l'échec d'une opération ROLLBACK. Parfois, mais rarement, une opération ROLLBACK peut échouer en raison du manque de mémoire sur le serveur, de pages tampon ou d'espace pour le journal.

Solutions

PANNE MATÉRIELLE

Exécutez les diagnostics matériels et corrigez les éventuels problèmes rencontrés. Examinez également les journaux des applications et système Microsoft Windows NT ainsi que le journal des erreurs SQL Server afin de déterminer si l'erreur est le résultat d'une défaillance matérielle. Corrigez les problèmes liés au matériel.

Si vous continuez à rencontrer des problèmes d'incohérence des données, essayez de permuter des composants matériels pour isoler le problème. Assurez-vous que le cache d'écriture n'est pas activé sur le contrôleur de disque. Si vous pensez que c'est le cas, contactez le fournisseur du matériel.

Pour terminer, il peut être utile d'installer un tout nouveau système matériel, de reformater vos lecteurs de disque et de réinstaller votre système d'exploitation.

RESTAURATION À PARTIR D'UNE SAUVEGARDE

Si le problème n'est pas matériel et si une restauration réputée en bon état est disponible, restaurez la base de données à partir de la sauvegarde.

DBCC CHECKDB

Si aucune sauvegarde saine n'est disponible, exécutez DBCC CHECKDB sans clause de réparation pour déterminer l'étendue de la corruption. DBCC CHECKDB vous recommandera une clause de réparation. Ensuite, exécutez DBCC CHECKDB avec la clause de réparation adéquate afin de réparer les dégâts.

ATTENTION : si vous ne connaissez pas les conséquences sur vos données de l'exécution de DBCC CHECKDB avec une clause de réparation, contactez votre fournisseur d'assistance principal avant d'exécuter cette instruction.

Si l'exécution de DBCC CHECKDB avec l'une des clauses de réparation ne corrige pas le problème, contactez votre fournisseur d'assistance principal.

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID9001
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Le journal de la base de données n'est pas disponible
{0}
Event LogApplication
CommentMom2008ID='{C6F11969-6288-411D-A4B1-23C7B08B91F5}';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.The_log_for_database_is_not_available_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{C6F11969-6288-411D-A4B1-23C7B08B91F5}';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>9001</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.2008.The_log_for_database_is_not_available_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>