[非推奨] DB ログ ファイル空き領域 (\%)

Microsoft.SQLServer.2008.Database.TransactionLogSizePercentMonitor (UnitMonitor)

このモニターは使用されていません。ログ ファイルと、ログをホストしているメディアで、利用可能な空き領域の割合を監視します。

Knowledge Base article:

概要

ログ ファイル、およびログ ファイルをホストしているメディアで利用可能な空き領域を監視します。ログ ファイルをホストしているメディアで使用可能な領域は、ファイルの 1 つで自動拡張が有効になっており、ファイル グループ オブジェクトの "ディスク領域を含める" 設定が TRUE に設定されている場合にのみ使用可能な領域の一部に含まれます。

原因

異常な状態になるのは、すべてのログ ファイルで空き領域が不足しているためです。空き領域の不足の原因として、次のことが考えられます。

パフォーマンス データを表示するには、次のリンクを使用してください。データベース パフォーマンス データ

このモニターは、各ファイルの構成に応じて、データベース内の各ログ ファイルで使用可能な領域を集計します。

自動拡張なし

自動拡張のないファイルの場合、空き領域はファイルの初期サイズと使用済み領域の差になります。

自動拡張有効

ファイル サイズと使用済み領域の差に加えて、自動拡張が有効になっているファイルの空き領域は、最大サイズとファイル サイズの差、およびディスクの空き領域のいずれか小さい方になります。

自動拡張が行われるデータベース ログ ファイルの空き容量が少ない場合、ホストしている論理ドライブの制限にファイルが近づいていることを示します。自動拡張が有効で最大サイズが指定されたファイルでは、空き領域が少ない場合、ファイルが指定された最大サイズに近づいていることを示します。

空き領域の計算では、ファイルの拡張量がディスクの残り領域よりも大きい場合にファイルが拡張できない可能性や、最大サイズと現在のファイル サイズの差が拡張領域よりも小さい場合にファイルが拡張できない可能性についても考慮します。これらの状況では、ファイルをこれ以上拡張できないため、ディスクに残っている使用可能な空き領域は空き領域の一部に含まれません。

解決方法

この問題は、次のいずれかの方法で解決できる場合があります。

詳細については、SQL Server オンライン ブックの「 ファイルとファイル グループのアーキテクチャ」を参照してください。

上書き可能なパラメーター

名前

説明

既定値

アラートの優先度

アラートの優先順位を定義します。

アラートの重要度

アラートの重大度を定義します。

MatchMonitorHealth

有効

ワークフローを有効または無効にします。

いいえ

アラートを生成する

ワークフローがアラートを生成するかどうかを定義します。

はい

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

900

下限しきい値

このモニターの下限しきい値。

10

同期時刻

24 時間形式で指定した同期時刻。省略可能です。

 

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

300

上限しきい値

このモニターの上限しきい値。

20

Element properties:

TargetMicrosoft.SQLServer.2008.Database
Parent MonitorMicrosoft.SQLServer.2008.Database.DBSpaceMonitor
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.DBAndLogSizeMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
ログ ファイルの領域が不足しています
コンピューター {2} 上の SQL インスタンス {1} のデータベース {0} のログ ファイルの容量が不足しています。詳しくは、[アラートのコンテキスト] タブを参照してください。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Database.TransactionLogSizePercentMonitor" Accessibility="Public" Enabled="false" Target="SQL2008Core!Microsoft.SQLServer.2008.Database" ParentMonitorID="Microsoft.SQLServer.2008.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBAndLogSizeMonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.Database.TransactionLogSizePercentMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Error"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$:TransactionLog</ObjectName>
<CounterName>Log Free Space (%)</CounterName>
<InstanceName>$Data/Property[@Name='Database']$</InstanceName>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBLogFreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>