此監視器會偵測記錄傳送來源在記錄傳送組態中所定義的閾值內,尚未備份其記錄的時間。
請注意,所有版本的 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 線上叢書的記錄傳送主題:
http://go.microsoft.com/fwlink/?LinkId=799310
名稱 | 描述 | 預設值 |
警示優先順序 | 定義警示優先順序。 | 標準 |
警示嚴重性 | 定義警示嚴重性。 | 錯誤 |
已啟用 | 啟用或停用該工作流程。 | 是 |
產生警示 | 定義工作流程是否要產生警示。 | 是 |
間隔 (秒) | 每次重複執行工作流程之間的時間間隔 (秒)。 | 300 |
同步處理時間 | 同步處理時間使用 24 小時制。可予省略。 |
|
逾時 (秒) | 指定流程被關閉及標示為失敗之前,允許執行的時間。 | 200 |
資料庫連線的逾時 (秒) | 若工作流程無法在指定的期限之內存取資料庫,將會失敗並登錄一則事件。 | 15 |
Target | Microsoft.SQLServer.Linux.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.SQLServer.Linux.MonitorType.Database.LogShipping | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.Database.LogShippingSourceMonitor" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.LogShipping" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Database.LogShippingSourceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="SourceNotBackedUp" MonitorTypeStateID="Bad" HealthState="Error"/>
<OperationalState ID="SourceBackUpComplete" MonitorTypeStateID="Good" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<LogShippingType>0</LogShippingType>
</Configuration>
</UnitMonitor>