L'erreur 945 est retournée quand la base de données est marquée comme IsShutdown. Ceci se produit quand une base de données ne peut pas être récupérée en raison de fichiers manquants ou d'une autre erreur de ressource qui peut en général être corrigée facilement.
Vérifiez d'abord que la base de données est marquée comme IsShutdown en utilisant 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 comme IsShutdown en utilisant 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 une nouvelle tentative pour effectuer l'opération ne suffit pas, envisagez de libérer la mémoire.
Nom | Description | Valeur par défaut |
Activé | Active ou désactive le flux de travail. | Oui |
Priorité | Définit la priorité de l'alerte. | 1 |
Gravité | Définit la gravité de l'alerte. | 1 |
Target | Microsoft.SQLServer.2012.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 | Mom2012ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2012GroupID={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.2012.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="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2012GroupID={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.2012.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>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>