Cela renvoie une erreur 945 lorsque la base de données est marquée comme IsShutdow. Cela se produit lorsqu'une base de données ne peut être récupérée du fait de fichiers manquants ou d'autres erreurs liée aux ressources auxquelles il est généralement facile de remédier.
L’erreur 945 est renvoyé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.
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 |
Severité | Définit la gravité de l'alerte. | 1 |
Target | Microsoft.SQLServer.2014.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 945 | ||
Event Source | $Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2014ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2014.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="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2014GroupID={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">
<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="SQL2014Core!Microsoft.SQLServer.2014.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.2014.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>