Monitor für freien Transaktionsprotokoll-Speicherplatz (\%) für 2012-Datenbanken
Monitor für freien Transaktionsprotokoll-Speicherplatz (%) für 2012-DBs
Der fehlerhafte Zustand wird durch wenig freien Speicherplatz in allen Protokolldateien verursacht. Mögliche Ursachen von wenig freiem Speicherplatz:
Unzureichende Dateikonfigurationseinstellungen (Größe, maximale Größe, automatische Vergrößerung usw.)
Nicht genügend verbleibender Speicherplatz auf dem Medium
Keine regelmäßigen Sicherungen.
Protokoll wird nicht abgeschnitten.
Für diesen Monitor ist die Einstellung "Speicherplatz einschließen" für Arbeitsauslastungen, bei denen die Dateien wahrscheinlich vergrößert werden, auf FALSE festgelegt.
Verwenden Sie folgenden Link, um die Leistungsdaten anzuzeigen:
Datenbank-Leistungsdaten
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
Für eine 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
Neben der Differenz zwischen der Dateigröße und dem verwendeten Speicherplatz wird der verfügbare Speicherplatz für Dateien mit aktivierter automatischer Vergrößerung berechnet. Dieser ergibt sich aus dem Minimum der Differenz zwischen der maximalen Größe und der Dateigröße oder der Differenz zwischen der maximalen Größe und dem auf dem Datenträger verbleibenden freien Speicherplatz.
Wenn für Datenbankprotokolldateien 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 eine 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.
Dieses Problem können Sie möglicherweise durch eine der folgenden Aktionen beheben:
Erhöhen der zugeordneten Größe für Protokolldateien, falls die automatische Vergrößerung deaktiviert ist
Erhöhen des Werts für die maximale Größe einer Protokolldatei, wenn die automatische Vergrößerung aktiviert ist
Aktivieren der automatischen Vergrößerung für mindestens eine Datei
Verschieben der Protokolldateien zu einem anderen Laufwerk, auf dem mehr freier Speicherplatz verfügbar ist, falls der Platz für die Dateivergrößerung beschränkt ist
Ausführen regelmäßiger Sicherungen für Protokolldateien für die Wiederherstellungsmodi FULL und BULK-LOGGED
Ermitteln der Gründe, aus denen das Protokoll nicht abgeschnitten wird:
Ausgeführte aktive Transaktionen, die lange geöffnet sind
Sicherungsvorgänge mit langer Ausführungszeit
Replizierte Transaktion, die für eine lange Zeit geöffnet ist (Transaktionsreplikation)
Spiegelung liegt zeitlich hinter dem Prinzipalserver (Datenbankspiegelung)
Legen Sie für diesen Monitor die Einstellung "Speicherplatz einschließen" für Arbeitsauslastungen, bei denen die Dateien wahrscheinlich vergrößert werden, auf TRUE fest.
Ändern der Schwellenwerte für diesen Monitor zwecks Anpassung an die Arbeitsauslastung
Wenn der freie Speicherplatz in Protokolldateien für die Datenbank nicht relevant ist, haben Sie zudem folgende Möglichkeiten:
Deaktivieren dieses Monitors für diese Datenbank oder für alle Datenbanken
In der SQL Server-Onlinedokumentation finden Sie weitere Informationen: Architektur von Dateien und Dateigruppen
Name | Beschreibung | Standardwert |
Warnungspriorität | Definiert die Warnungspriorität. | Normal |
Warnungsschweregrad | Definiert den Warnungsschweregrad. | Fehler |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Nein |
Generiert Warnungen | Definiert, ob der Workflow eine Warnung generiert. | Ja |
Intervall (Sekunden) | Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll. | 900 |
Schwellenwert | Warnungsschwellenwert | 10 |
Timeout (Sekunden) | Gibt an, wie lange der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlerhaft markiert wird. | 300 |
Target | Microsoft.SQLServer.2012.Database | ||
Parent Monitor | Microsoft.SQLServer.2012.Database.DBSpaceMonitor | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercent.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercentMonitor" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="Microsoft.SQLServer.2012.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercent.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Database.TransactionLogSpaceFreePercentMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<Threshold>10</Threshold>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$:TransactionLog</ObjectName>
<CounterName>Log Free Space (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBLogFreeSpacePercent']$</Value>
</Configuration>
</UnitMonitor>