このモニターは、ログ配布構成の一部として定義されているしきい値内でログ配布元がログをバックアップしていない状況を検出します。
ログ配布は、どのエディションの SQL Server Express でもサポートされていないことにご注意ください。
このモニターは、ログ配布構成の一部として定義されたしきい値内でログ配布ソースのログがバックアップされていない場合に検出します。この状況が発生すると、モニターが重大な状態に変わります。定義されたしきい値内でログ バックアップが再開されると、モニターは正常な状態に戻ります。既定では、このモニターは、エラー状態になった場合にアラートを生成します。
バックアップのしきい値を超えましたが、ログ配布が同期されていません。バックアップのしきい値は、ログ配布のバックアップ ジョブが完了するまでの許容時間 (分数) です。この時間が経過すると警告が生成されます。このメッセージは、必ずしもログ配布に関する問題を示すとは限りません。このメッセージは次の問題のいずれかを示す可能性があります。
バックアップ ジョブが実行されていません。原因として、プライマリ サーバー インスタンスで SQL Server エージェント サービスが実行されていないか、バックアップ ジョブが無効になっているか、バックアップ ジョブのスケジュールが変更されていることが考えられます。
バックアップ ジョブが失敗しています。原因として、バックアップ フォルダーのパスが有効でないか、ディスクがいっぱいになっているか、その他の理由で BACKUP ステートメントが失敗したことが考えられます。
この問題をトラブルシューティングするには、次の手順を実行します。
プライマリ サーバー インスタンスで SQL Server エージェント サービスが実行されていることを確認します。また、プライマリ データベースのバックアップ ジョブが有効になっており、適切な頻度で実行するようにスケジュール設定されていることを確認します。
プライマリ サーバーのバックアップ ジョブが失敗している可能性があります。この場合は、バックアップ ジョブのジョブ履歴を参照して原因を探してください。
プライマリ サーバー インスタンスで実行されるログ配布のバックアップ ジョブでは、監視サーバー インスタンスに接続して log_shipping_monitor_primary テーブルを更新できない可能性があります。これは、監視サーバー インスタンスとプライマリ サーバー インスタンス間での認証に問題があると思われます。
バックアップの警告のしきい値に、正しくない値が設定されている可能性があります。この値は、バックアップ ジョブの少なくとも 3 倍の頻度に設定するのが理想的です。ログ配布を構成し、有効にした後で、バックアップ ジョブの頻度を変更した場合は、それに合わせてバックアップの警告しきい値も更新する必要があります。
監視サーバー インスタンスがオフラインになり、その後オンラインに戻ったとき、警告メッセージ ジョブが実行される前に、log_shipping_monitor_primary テーブルが現在の値に更新されません。監視テーブルを更新して、プライマリ データベースの最新データを反映させるには、プライマリ サーバー インスタンスで sp_refresh_log_shipping_monitor を実行します。
プライマリ サーバー インスタンスまたは監視サーバー インスタンスで、日付または時刻が正しく設定されていません。これが原因で、警告メッセージが生成される場合もあります。これらいずれかのサーバーで、システムの日付または時刻が変更された可能性があります。
メモ: 2 つのサーバー インスタンスで異なるタイム ゾーンを使用していることは、問題の原因にはなりません。
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>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='Message']$</AlertParameter3>
</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>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<LogShippingType>0</LogShippingType>
</Configuration>
</UnitMonitor>