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

Knowledge Base article:

Zusammenfassung

Fehler 945 wird zurückgegeben, wenn die Datenbank die Markierung "IsShutdown" aufweist. Dies geschieht, wenn eine Datenbank aufgrund fehlender Dateien oder anderer Ressourcenfehler, die normalerweise leicht korrigiert werden können, 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.

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

1

Element properties:

TargetMicrosoft.SQLServer.2012.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
CommentMom2012ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2012GroupID={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.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>