MSSQL für Linux: Datenbank kann aufgrund von nicht zugänglichen Dateien oder nicht ausreichendem Arbeitsspeicher oder Speicherplatz auf dem Datenträger nicht geöffnet werden

Microsoft.SQLServer.Linux.EventRule.DBEngine.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)

Fehler 945 wird ausgegeben, wenn die Datenbank als heruntergefahren markiert ist. Dieser Fehler tritt auf, wenn eine Datenbank aufgrund fehlender Dateien oder eines anderen, nicht leicht korrigierbaren Ressourcenfehlers nicht wiederhergestellt werden kann.

Knowledge Base article:

Zusammenfassung

Fehler 945 wird ausgegeben, wenn die Datenbank als IsShutdown markiert ist. Dies ist dann der Fall, wenn eine Datenbank aufgrund fehlender Dateien oder eines anderweitigen, meist leicht korrigierbaren Ressourcenfehlers 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

Intervall (Sekunden)

Gibt das Wiederholungsintervall in Sekunden für die Ausführung des Workflows an.

300

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

1

Synchronisierungszeit

Synchronisierungszeit

 

Timeout (Sekunden)

Gibt die Zeit an, zu der der Workflow ausgeführt werden dann, bevor er geschlossen und als fehlerhaft markiert wird.

200

Timeout für Datenbankverbindung (Sekunden)

Es tritt ein Fehler beim Workflow auf, und ein Ereignis wird registriert, wenn der Workflow nicht innerhalb des angegebenen Zeitraums auf die Datenbank zugreifen kann.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL für Linux: Datenbank kann aufgrund von nicht zugänglichen Dateien oder nicht ausreichendem Arbeitsspeicher oder Speicherplatz auf dem Datenträger nicht geöffnet werden
{0}
CommentMom2017ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.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="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{3BC2D536-13F6-4982-B717-0DCF03213119}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>945</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.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>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>