此監視器會偵測記錄傳送目的地何時未在記錄傳送組態所定義的臨界值內還原記錄。
此監視器會偵測記錄傳送目的地何時未在記錄傳送組態所定義的臨界值內還原記錄。發生這種情況時,監視器會變成錯誤 (紅色) 狀態。一旦記錄還原繼續,且在定義的臨界值內進行,監視就將會回到成功 (綠色) 狀態。此監視預設會在錯誤狀態時,產生警示。
記錄傳送不同步,超過還原臨界值。還原臨界值是指產生訊息之前,還原作業之間經歷的分鐘數。
若要疑難排解此問題:
請確定已為次要伺服器執行個體執行 SQL Server Agent 服務,且已為此次要資料庫啟用還原作業,同時已排定以適當的頻率執行。
次要伺服器上的還原工作可能會失敗。在此情況下,請查看還原工作的工作記錄以找出原因。
次要伺服器執行個體上執行的記錄傳送還原工作,可能無法連接到監視伺服器執行個體,以更新 log_shipping_monitor_secondary 資料表。這可能是因為監視伺服器執行個體與次要伺服器執行個體之間的驗證問題所引起的。
備份警示臨界值的值可能不正確。這個值最好是設定為還原工作頻率的三倍以上。如果您在設定且執行記錄傳送之後,變更還原工作的頻率,則必須相對應地更新備份警示臨界值的值。
當監視伺服器執行個體離線之後又再度連線時,log_shipping_monitor_secondary 資料表會在警示訊息工作執行之後,才會更新為目前的值。若還原工作成功但顯示 [找不到可套用至次要資料庫的記錄備份檔案],可能發生錯誤 14421。發生此錯誤時,便不會更新還原時間。這個情況的錯誤原因可能是複製工作發生問題。
若要以次要資料庫最新的資料更新監視資料表,請在次要伺服器執行個體上執行 sp_refresh_log_shipping_monitor。
次要或監視伺服器執行個體上的日期或時間不正確。這也可能會產生警示訊息。可能是其中一個執行個體上的系統日期或時間經過修改所引起的。
注意:兩個伺服器執行個體的時區不同,應該不會造成問題。
《SQL Server 2008 線上叢書》的<記錄傳送>主題:
Target | Microsoft.SQLServer.2008.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.2008.Database.LogShippingDestinationMonitor" Accessibility="Public" Enabled="true" Target="SQL2008Core!Microsoft.SQLServer.2008.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.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="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>.$Target/Property[Type="SQL!Microsoft.SQLServer.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="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>: $Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$,</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>