Dieser Monitor erkennt, wenn für ein Protokollversandziel innerhalb des Schwellenwerts, der als Teil der Protokollversandkonfiguration definiert ist, kein Protokoll wiederhergestellt wurde.
Beachten Sie, dass der Protokollversand von keiner Edition von SQL Server Express unterstützt wird.
Dieser Monitor ermittelt, wann für ein Protokollversandziel die Protokolle mit dem Schwellenwert gesichert wurden, der als Teil der Protokollversandkonfiguration definiert wurde. Wenn diese Bedingung eintritt, ändert sich der Monitor in einen kritischen Status. Sobald die Protokollwiederherstellungen wieder aufgenommen werden und sich innerhalb der definierten Schwellenwerte befinden, kehrt der Monitor in einen fehlerfreien Status zurück. Dieser Monitor gibt standardmäßig Warnungen aus, wenn er sich in einem fehlerhaften Status befindet.
Der Protokollversand wird bei Überschreitung des Wiederherstellungsschwellenwerts nicht mehr synchronisiert. Bei der Wiederherstellungsschwelle handelt es sich um eine Zeit in Minuten, die zwischen den Wiederherstellungsvorgängen vergehen kann, bevor eine Meldung erzeugt wird.
So beheben Sie das Problem:
Stellen Sie sicher, dass der SQL Server-Agent-Dienst in der sekundären Serverinstanz ausgeführt wird, dass der Wiederherstellungsauftrag für diese sekundäre Datenbank aktiviert ist und dass er so geplant ist, dass er in der entsprechenden Häufigkeit ausgeführt wird.
Möglicherweise tritt beim Wiederherstellungsauftrag auf dem sekundären Server ein Fehler auf. Überprüfen Sie in diesem Fall den Auftragsverlauf für den Wiederherstellungsauftrag, und suchen Sie nach der Ursache.
Für den in der sekundären Serverinstanz ausgeführten Wiederherstellungsauftrag des Protokollversands kann möglicherweise keine Verbindung mit der Überwachungsserverinstanz hergestellt werden, um die log_shipping_monitor_secondary-Tabelle zu aktualisieren. Dies beruht möglicherweise auf einem Authentifizierungsproblem zwischen der Überwachungsserverinstanz und der sekundären Serverinstanz.
Die Sicherungswarnschwelle weist möglicherweise einen falschen Wert auf. Im Idealfall ist dieser Wert auf den dreifachen Wert der Häufigkeit festgelegt, mit der der Wiederherstellungsauftrag ausgeführt wird. Wenn Sie die Häufigkeit für den Wiederherstellungsauftrag ändern, nachdem der Protokollversand konfiguriert und ausgeführt wurde, müssen Sie den Wert für die Sicherungswarnschwelle entsprechend aktualisieren.
Wenn die Überwachungsserverinstanz offline geschaltet und anschließend wieder online geschaltet wird, wird die log_shipping_monitor_secondary-Tabelle erst dann mit den aktuellen Werten aktualisiert, wenn der Warnmeldungsauftrag ausgeführt wurde. Der Fehler 14421 kann ausgelöst werden, wenn ein Wiederherstellungsauftrag mit folgender Meldung erfolgreich ausgeführt wurde: "Für die sekundäre Datenbank wurde keine anwendbare Protokollsicherungsdatei gefunden." Wenn dieser Fehler auftritt, wird der Speicherzeitpunkt nicht aktualisiert. Möglicherweise beruht der Fehler in diesem Fall auf einem Problem mit dem Kopierauftrag.
Wenn Sie die Überwachungstabellen mit den neuesten Daten für die sekundäre Datenbank aktualisieren möchten, führen Sie sp_refresh_log_shipping_monitor in der sekundären Serverinstanz aus.
Das Datum oder die Uhrzeit in der sekundären Serverinstanz oder in der Überwachungsserverinstanz ist nicht richtig. Dadurch werden möglicherweise Warnmeldungen generiert. Möglicherweise wurde das Systemdatum oder die Systemuhrzeit für eine der Instanzen geändert.
Hinweis: Unterschiedliche Zeitzonen für die beiden Serverinstanzen sollten kein Problem darstellen.
Mehr zum Thema "Protokollversand" in der Onlinedokumentation zu SQL Server 2014:
http://go.microsoft.com/fwlink/?LinkId=799279
Name | Beschreibung | Standardwert |
Warnungspriorität | Definiert die Warnungspriorität. | Normal |
Warnungsschweregrad | Definiert den Warnungsschweregrad. | Fehler |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Generiert Warnungen | Definiert, ob der Workflow eine Warnung generiert. | Ja |
Target | Microsoft.SQLServer.2014.Database | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.2SingleEventLog2StateMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2014.Database.LogShippingDestinationMonitor" Accessibility="Public" Enabled="true" Target="SQL2014Core!Microsoft.SQLServer.2014.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Database.LogShippingDestinationMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="DestOutOfSync" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="DestInSync" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>Application</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">14421</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>.$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$ </Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>Application</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">18268</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>: $Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$,</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>