このモニターは、データベース内および関連メディア上のすべてのトランザクション ログ ファイルで使用可能な空き領域を監視します。トランザクション ログ ファイルをホストしているメディアで使用可能な領域が、空き領域の一部として扱われるのは、1 つ以上のトランザクション ログ ファイルで自動拡張が有効になっている場合のみです。このモニターは依存関係 (ロールアップ) モニターです。
注: このモニターは、依存関係 (ロールアップ) モニターです。このモニターの正常性状態は、最高の状態のメンバー モニターによって判断されます。関連するユニット モニターについて詳しくは、サポート技術情報もご確認ください。
このモニターは、データベースのすべてのトランザクション ログ ファイルと関連するメディアで使用可能な領域を監視します。 ログ ファイルをホストしているメディアで使用可能な領域が、使用可能な領域の一部として扱われるのは、1 つ以上のファイルで自動拡張が有効になっている場合のみです。 このモニターは、依存関係 (ロールアップ) モニターです。
異常な状態は、全ログ ファイルの空き領域が不足しているためです。空き領域の不足の原因として、次のことが考えられます。
ファイルの構成設定 (サイズ、最大サイズ、自動拡張など) が不適切である
メディアの残りの空き領域が不十分である
定期的なバックアップが行われていない
ログが切り捨てられていない
このモニターは、各ファイルの構成に応じて、データベース内の各ログ ファイルで使用可能な領域を集計します。
自動拡張なし
自動拡張が構成されていないファイルでは、空き領域は、ファイル サイズと使用済みの領域 (ファイルに保存されたデータのサイズ) の差になります。
自動拡張有効
自動拡張を有効にすると、使用可能なディスク領域が空き領域の一部に含まれます。ファイル サイズと使用されている領域の差の他に、自動拡張が有効になっているファイルの空き領域にも、メディアの空き領域が含まれます (ただし、ファイルの最大サイズと現在のファイル サイズの差を超えることはありません)。
自動拡張するデータベース ファイルの空き領域が低下しているということは、ファイルがホストしている論理ドライブの制限に近づいている可能性があります。最大サイズを指定して自動拡張が有効にされているファイルの場合、空き領域が低下しているということは、ファイルが指定されている最大サイズに近づいていることも考えられます。
また、空き領域の計算には、ファイルの拡張手順 (MB または % 単位) がメディアで利用できる空き領域より大きい場合に、ファイルが拡張に失敗する可能性があることも考慮されています。同じロジックがファイルにも該当し、最大サイズの設定により拡張が制限されます。これらの状況では、ファイルをこれ以上拡張できないため、ディスクに残っている使用可能な空き領域は空き領域の一部に含まれません。
この問題は、次のいずれかの方法で解決できる場合があります。
自動拡張が無効に設定されている場合は、ログ ファイルの割り当てサイズを増やす
自動拡張が有効に設定されている場合は、ログ ファイルの最大サイズ値を増やす
少なくとも 1 つのファイルで自動拡張を有効にする
拡張領域が制限されている場合は、空き領域の多い別のドライブにログ ファイルを移動する
完全復旧モードと一括ログ復旧モードでログ ファイルの定期バックアップを実行する
ログが切り捨てられていない理由を調べる
アクティブな実行中のトランザクションが長時間開いている
バックアップ操作が長時間実行されている
レプリケートされたトランザクションが長時間開いている (トランザクション レプリケーション)
ミラーリングがプリンシパル サーバーに遅れている (データベース ミラーリング)
ワークロードに合うように関連するユニット モニターのしきい値を変更する。
また、データベースのログ ファイルの空き領域に問題がない場合は、次の方法をとることもできます。
この特定のデータベースまたはすべてのデータベースについて、このモニターを無効にする
詳しくは、SQL Server オンライン ブックの「 ファイルとファイル グループのアーキテクチャ」をご覧ください。
名前 | 説明 | 既定値 |
アラートの優先度 | アラートの優先順位を定義します。 | 中 |
アラートの重要度 | アラートの重大度を定義します。 | MatchMonitorHealth |
有効 | ワークフローを有効または無効にします。 | はい |
アラートを生成する | ワークフローがアラートを生成するかどうかを定義します。 | はい |
Target | Microsoft.SQLServer.2016.Database | ||
Parent Monitor | Microsoft.SQLServer.2016.Database.DBLogFileSpaceMonitor | ||
Algorithm | BestOf | ||
Source Monitor | Microsoft.SQLServer.2016.Monitoring.DBLogFileSpaceMonitor | ||
Relationship | Microsoft.SQLServer.2016.DBHostsLogFile | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
|
<DependencyMonitor ID="Microsoft.SQLServer.2016.Database.DBLogFileSpaceMonitorRollUp" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="Microsoft.SQLServer.2016.Database.DBLogFileSpaceMonitor" Remotable="true" Priority="Normal" RelationshipType="SQL2016Core!Microsoft.SQLServer.2016.DBHostsLogFile" MemberMonitor="Microsoft.SQLServer.2016.Monitoring.DBLogFileSpaceMonitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Database.DBLogFileSpaceMonitorRollUp.AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<Algorithm>BestOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>