Freier Speicherplatz in Datenbank für Protokolldatei

Microsoft.SQLServer.Linux.Monitor.DBLogFile.DBLogFileSpace (UnitMonitor)

Der Monitor gibt eine Warnung aus, wenn der freie Speicherplatz (einschließlich des bereits zugewiesenen Speichers und des freien Speichers auf den Medien) unter die Einstellung für den Warnungsschwellenwert fällt. Dieser Wert wird als Prozentsatz der Summe aus Datengröße und freiem Datenträgerspeicherplatz ausgedrückt. Der Monitor gibt eine kritische Warnung aus, wenn der freie Speicherplatz unter den kritischen Schwellenwert fällt.

Knowledge Base article:

Zusammenfassung

Der Monitor überwacht den verfügbaren Speicherplatz in der Protokolldatei und auf dem Medium, das die Protokolldatei hostet. Der verfügbare Platz auf dem Medium wird als Teil des freien Speicherplatzes einbezogen, wenn die automatische Vergrößerung für mindestens eine der Dateien aktiviert ist.

Ursachen

Ein fehlerhafter Zustand wird durch zu wenig freien Speicherplatz in allen Protokolldateien verursacht. Mögliche Ursachen von zu wenig verfügbarem Speicherplatz:

Verwenden Sie die folgenden Links, um die Leistungsdaten anzuzeigen: Leistungsdaten zum freien Speicherplatz in DB-Protokolldatei

Dieser Monitor aggregiert den verfügbaren Speicherplatz für jede Protokolldatei innerhalb einer Datenbank, abhängig von der Konfiguration der jeweiligen Datei:

Keine automatische Vergrößerung

Bei einer Datei, für die keine automatische Vergrößerung festgelegt ist, entspricht der freie Speicherplatz der Differenz zwischen der anfänglichen Größe einer Datei und dem belegten Speicherplatz.

Automatische Vergrößerung aktiviert

Zusätzlich zur Differenz zwischen der Dateigröße und dem verwendeten Speicherplatz ist der freie Speicherplatz für Dateien mit aktivierter automatischer Vergrößerung die Mindestdifferenz zwischen der maximalen Größe und der Dateigröße sowie dem auf dem Datenträger verbleibenden freien Speicherplatz.

Wenn für Datenbankdateien mit aktivierter automatischer Vergrößerung zu wenig Speicherplatz verfügbar ist, kann dies bedeuten, dass die Datei sich den Grenzen des logischen Laufwerks nähert, das als Host fungiert. Für Dateien, bei denen die automatische Vergrößerung mit einer maximalen Größe aktiviert ist, kann ein geringer verfügbarer Speicherplatz auch bedeuten, dass sich die Datei der maximalen Größe annähert, die für die Datei angegeben ist.

Bei Berechnungen des freien Speicherplatzes wird auch berücksichtigt, dass eine Vergrößerung der Datei nicht möglich ist, wenn die Größenzunahme der Datei den auf dem Datenträger verbleibenden Speicherplatz überschreitet. Zudem wird berücksichtigt, dass die Dateigröße nicht zunehmen kann, wenn die Differenz zwischen der maximalen Größe und der aktuellen Größe kleiner ist als die Größenzunahme. In solchen Situationen ist der auf dem Datenträger verbleibende Speicherplatz nicht Teil des freien Speicherplatzes, da keine weitere Größenzunahme möglich ist.

Lösungen

Dieses Problem können Sie möglicherweise durch eine der folgenden Aktionen beheben:

In der SQL Server-Onlinedokumentation finden Sie weitere Informationen: Architektur von Dateien und Dateigruppen

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Warnungspriorität

Definiert die Warnungspriorität.

Normal

Warnungsschweregrad

Definiert den Warnungsschweregrad.

Fehler

Maximale Azure-Dateigröße (MB)

Die maximale Größe der im Azure-Blobspeicher gespeicherten Datendatei. Im Workflow wird dieser Wert als maximale Speicherkapazität für jede Datei betrachtet.

1048576

Kritischer Schwellenwert

Der Status des Monitors wechselt zu "Kritisch", wenn der Wert unter diesen Schwellenwert fällt. Wenn der Wert zwischen diesem Schwellenwert und dem Warnschwellenwert (inklusive) liegt, wechselt der Monitor zum Warnstatus.

10

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Generiert Warnungen

Definiert, ob der Workflow eine Warnung generiert.

Nein

Intervall (Sekunden)

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

900

Synchronisierungszeit

Die Synchronisierungszeit, angegeben im 24-Stunden-Format. Dieser Wert kann ausgelassen werden.

 

Timeout (Sekunden)

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

300

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

Warnungsschwellenwert

Der Status des Monitors wechselt zu "Warnung", wenn der Wert unter diesen Schwellenwert sinkt.

20

Element properties:

TargetMicrosoft.SQLServer.Linux.DBLogFile
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.DBLogFile.DBLogFileSpace
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL für Linux: Speicherplatz der Datenbankprotokolldatei geht zur Neige
In der Datenbankprotokolldatei "{0}" für die Datenbank "{1}" in der SQL-Instanz "{2}" auf dem Computer "{3}" ist nur noch wenig Speicherplatz verfügbar. Weitere Informationen finden Sie im Wissensabschnitt.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.DBLogFile.DBLogFileSpace" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBLogFile" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.DBLogFile.DBLogFileSpace" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.DBLogFile.DBLogFileSpace.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter6>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Error"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<FileName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</FileName>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<ValuePropertyName>FreeSpacePercent</ValuePropertyName>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<ConnectionString>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>