Die Datenbank kann nicht geöffnet werden, da auf einige Dateien nicht zugegriffen werden kann oder nicht genügend Arbeitsspeicher oder Speicherplatz auf dem Datenträger zur Verfügung steht. Einzelheiten können Sie dem SQL Server-Fehlerprotokoll entnehmen

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 (Rule)

Knowledge Base article:

Zusammenfassung

Fehler 945 wird zurückgegeben, wenn die Datenbank als IsShutdown markiert ist. Dies ist der Fall, wenn eine Datenbank aufgrund fehlender Dateien oder eines anderen Ressourcenfehlers, der normalerweise leicht behoben werden kann, nicht wiederhergestellt werden kann.

Lösungen

Überprüfen Sie zuerst mithilfe von DATABASEPROPERTY, ob die Datenbank als IsShutdown markiert ist.

Bestimmen Sie dann die Ursache des Fehlers, indem Sie das Fehlerprotokoll lesen und eine der unten aufgeführten Maßnahmen ergreifen.

Überprüfen Sie zuerst mithilfe von DATABASEPROPERTY, ob die Datenbank als IsShutdown markiert ist.

Bestimmen Sie dann die Ursache des Fehlers, indem Sie das Fehlerprotokoll lesen und eine der unten aufgeführten Maßnahmen ergreifen.

Es fehlt mindestens eine Daten- oder Protokolldatei:

Der Protokollspeicherplatz reicht nicht aus:

Die Datenbank wird durch dieses Verfahren wiederhergestellt und online geschaltet.

Der Datenspeicherplatz reicht nicht aus:

Die Datenbank wird durch dieses Verfahren wiederhergestellt und online geschaltet.

Der Arbeitsspeicher reicht nicht aus:

Der Fehler in Bezug auf unzureichenden Arbeitsspeicher kann auftreten, wenn mehrere Datenbanken gleichzeitig wiederhergestellt werden. Das Problem kann möglicherweise durch Wiederholen des Vorgangs gelöst werden:

Wenn das Wiederholen des Vorgangs nicht das gewünschte Ergebnis liefert, ziehen Sie das Freigeben von Arbeitsspeicher in Betracht.

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID945
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Die Datenbank kann nicht geöffnet werden, da auf einige Dateien nicht zugegriffen werden kann oder nicht genügend Arbeitsspeicher oder Speicherplatz auf dem Datenträger zur Verfügung steht. Einzelheiten können Sie dem SQL Server-Fehlerprotokoll entnehmen
{0}
Event LogApplication
CommentMom2008ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';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.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>