L'erreur 945 est retournée lorsque la base de données est marquée IsShutdown. Cela se produit lorsqu'une base de données ne peut pas être récupérée en raison de l'absence de certains fichiers ou d'une erreur de ressource pouvant généralement être corrigée facilement.
Vérifiez d'abord que la base de données est marquée IsShutdown à l'aide de DATABASEPROPERTY.
Déterminez ensuite la cause de l'erreur en consultant le journal des erreurs et procédez comme indiqué ci-dessous.
Faites en sorte que les fichiers soient disponibles et affectez l'état OFFLINE à la base de données en utilisant ALTER DATABASE.
Affectez à la base de données l'état ONLINE en utilisant ALTER DATABASE
Vérifiez d'abord que la base de données est marquée IsShutdown à l'aide de DATABASEPROPERTY
Déterminez ensuite la cause de l'erreur en consultant le journal des erreurs et procédez comme indiqué ci-dessous.
S'il manque un ou plusieurs fichiers de données ou journaux :
Faites en sorte que les fichiers soient disponibles et affectez l'état OFFLINE à la base de données en utilisant ALTER DATABASE.
Affectez à la base de données l'état ONLINE en utilisant ALTER DATABASE.
Si l'espace journal est insuffisant :
Utilisez sp_add_log_file_recover_suspect_db() pour ajouter un autre fichier journal
Cette procédure permet de récupérer la base de données et de la mettre en ligne.
Si l'espace de données est insuffisant :
Utilisez sp_add_data_file_recover_suspect_db() pour ajouter un autre fichier journal
Cette procédure permet de récupérer la base de données et de la mettre en ligne.
Si la mémoire est insuffisante :
L'erreur d'insuffisance de mémoire peut se produire lors de la récupération simultanée de plusieurs bases de données. Le problème peut être corrigé en renouvelant l'opération :
Renouvelez l'opération en lançant ALTER DATABASE pour affecter à la base de données l'état OFFLINE
Affectez à la base de données l'état ONLINE en utilisant ALTER DATABASE
Si le renouvellement de l'opération ne suffit pas, libérez de la mémoire.
Target | Microsoft.SQLServer.2008.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 945 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2008ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.Database_cannot_be_opened_due_to_inaccessible_files_or_insufficient_memory_or_disk_space._See_the_SQL_Server_errorlog_for_details_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';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>945</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.Database_cannot_be_opened_due_to_inaccessible_files_or_insufficient_memory_or_disk_space._See_the_SQL_Server_errorlog_for_details_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>