Der Monitor gibt eine Warnung aus, wenn der freie Speicherplatz für den speicheroptimierten Datendateigruppen-Container unter die Einstellung für den Warnungsschwellenwert fällt. Dieser Wert wird als Prozentsatz der Gesamtgröße des speicheroptimierten Datendateigruppen-Containers plus freiem Speicherplatz ausgedrückt. Wenn der freie Speicherplatz unter den kritischen Schwellenwert fällt, gibt der Monitor eine kritische Warnung aus.
Der Monitor gibt eine Warnung aus, wenn der freie Speicherplatz für den speicheroptimierten Datendateigruppen-Container unter die Einstellung für den Warnungsschwellenwert fällt. Dieser Wert wird als Prozentsatz der Gesamtgröße des speicheroptimierten Datendateigruppen-Containers plus freiem Speicherplatz ausgedrückt. Wenn der freie Speicherplatz unter den kritischen Schwellenwert fällt, gibt der Monitor eine kritische Warnung aus.
Der Ordner des speicheroptimierten Datendateigruppen-Containers nimmt normalerweise im Lauf der Zeit an Größe zu, da immer mehr Daten zu speicheroptimierten Tabellen hinzugefügt werden. Administratoren sollten den Speicherort daher überwachen, um sicherzustellen, dass genügend Speicherplatz für den Containerordner verbleibt.
Wenn auf dem Laufwerk, auf dem der Speicherort der Datenbank konfiguriert wurde, zu wenig Speicherplatz verfügbar ist, können Fehler entstehen, die die erfolgreiche Verarbeitung von Daten verhindern, Benutzerabfragen verzögern oder andere Anwendungen beeinträchtigen können, denen der gleiche Speicherplatz auf dem Datenträger zugewiesen ist.
Die Speicherzuweisung erfolgt im Rahmen von DML-Vorgängen in den langlebigen speicheroptimierten Tabellen. Sie müssen eine Speichermenge bis zum Vierfachen der Größe der langlebigen speicheroptimierten Daten konfigurieren. Wenn Sie den Speicher ordnungsgemäß konfiguriert haben, der Speicherplatz jedoch immer noch nicht ausreicht, können die von den Containern unterstützten IOPS-Vorgänge möglicherweise die Arbeitsauslastungsanforderungen nicht unterstützen. Allgemein wird für Container der dreifache IOPS-Wert der Datengenerierungsraten empfohlen, um die anfängliche Auffüllung der Daten-/Deltadateien und den automatischen Mergevorgang zu berücksichtigen, bei dem die Quelldaten-/Deltadateien gelesen und dann in einer Ziel-CFP zusammengeführt werden müssen.
Die Lösungen bei wenig verfügbarem Speicherplatz auf dem Datenträger sind von den jeweiligen Ursachen abhängig, die bei jedem Auftreten dieses Problems untersucht werden müssen. Zur Behebung sind zahlreiche Herangehensweisen möglich:
Verringern Sie die Menge der in speicheroptimierten Datentabellen gespeicherten Daten.
Entfernen Sie Daten, die auf dem Laufwerk mit dem speicheroptimierten Datendateigruppen-Container Speicherplatz belegen.
Fügen Sie einen weiteren Container in die speicheroptimierte Datendateigruppe ein.
Vergrößern Sie mithilfe der Datenträgerverwaltung das logische Laufwerk, auf dem der Ordner des speicheroptimierten Datendateigruppen-Containers gespeichert ist.
Kopieren Sie den Ordner des speicheroptimierten Datendateigruppen-Containers vollständig auf ein neues Laufwerk, auf dem mehr Speicherplatz verfügbar ist.
Ändern Sie die Schwellenwerte entsprechend der erwarteten Arbeitsauslastung und entsprechend den Bedingungen in der Umgebung.
Deaktivieren Sie den Monitor ganz, wenn der Speicherplatz auf dem Datenträger für die Instanz nicht relevant ist.
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 sinkt. | 10 |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Generiert Warnungen | Definiert, ob der Workflow eine Warnung generiert. | Ja |
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 |
Target | Microsoft.SQLServer.Windows.Container | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Windows.MonitorType.Container.FreeSpacePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Container.FreeSpacePercent" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Container" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Container.FreeSpacePercent" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Container.FreeSpacePercent.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter3>
<AlertParameter4>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='DiskTotalSizeMB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='AllocatedSizeMB']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Critical" MonitorTypeStateID="ContainerFreeSpaceCritical" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="ContainerFreeSpaceWarning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="ContainerFreeSpaceSuccess" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<FileName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</FileName>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<CriticalThreshold>10</CriticalThreshold>
<WarningThreshold>20</WarningThreshold>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>