此監視器會偵測記錄傳送來源在記錄傳送組態中所定義的臨界值內,尚未備份其記錄。
請注意,所有版本的 SQL Server Express 都不支援任何記錄傳送。
此監視器會偵測記錄傳送來源在何時未於記錄傳送組態定義的臨界值內備份。發生此情況時,監視器會變成重大狀態。只要記錄備份繼續且在定義的臨界值內,監視器便會回到狀況良好的狀態。此監視器預設會在處於錯誤狀態時,產生整示。
記錄傳送已經超過備份臨界值未執行同步處理。備份臨界值是指產生警示之前,記錄傳送備份作業之間所能經歷的分鐘數。此訊息確實指出記錄傳送發生問題。不過,此訊息可能表示發生下列其中一個問題︰:
備份作業並未執行。可能原因如下:主要伺服器執行個體上的 SQL Server Agent 服務未執行、作業已停用,或是作業的排程已變更。
備份作業將失敗。可能的原因如下:備份資料夾路徑無效、磁碟已滿,或是 BACKUP 陳述式可能失敗等任何其他原因。
若要疑難排解此問題::
請確定主要伺服器執行個體正在執行 SQL Server Agent 服務,以及此主要資料庫的備份作業已啟用,並且已排程為根據適當的頻率執行。
主要伺服器上的備份作業可能會失敗。在此情況下,請檢查備份作業的作業記錄以找出原因。
主要伺服器執行個體上執行的記錄傳送備份作業,可能無法連接到監視伺服器執行個體以更新 log_shipping_monitor_primary 資料表。這可能是監視伺服器執行個體與主要伺服器執行個體之間的驗證問題所引起的。
備份警示臨界值的值可能不正確。最好至少將這個值設定為備份作業頻率的三倍。如果您在設定並執行記錄傳送之後變更備份作業的頻率,則必須跟著更新備份警示臨界值的值。
當監視伺服器執行個體離線之後又再次連線時,log_shipping_monitor_primary 資料表會在警示訊息作業執行之後才更新為最新的值。若要以主要資料庫的最新資料更新監視資料表,請在主要伺服器執行個體上執行 sp_refresh_log_shipping_monitor。
在主要或監視器伺服器執行個體上,日期或時間不正確。這也可能會產生警示訊息。可能其中之一的系統日期或時間已修改。
注意:兩個伺服器執行個體的時區不同應該不會造成問題。
來自 SQL Server 2016 線上叢書的記錄傳送主題:
http://go.microsoft.com/fwlink/?LinkId=799310
名稱 | 描述 | 預設值 |
警示優先程式 | 定義警示優先順序。 | 一般 |
警示嚴重性 | 定義警示嚴重性。 | 錯誤 |
已啟用 | 啟用或停用該工作流程。 | 是 |
產生警示 | 定義工作流程是否會產生警示。 | 是 |
Target | Microsoft.SQLServer.2016.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.2016.Database.LogShippingSourceMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Database.LogShippingSourceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="SourceNotBackedUp" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="SourceBackUpComplete" 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">14420</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>.$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.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">18265</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>: $Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$,</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>