DB ログ ファイルの残りの使用可能な領域

Microsoft.SQLServer.2014.Monitoring.DBLogFileSpaceMonitor (UnitMonitor)

モニターは、使用可能な容量 (割り当て済みの容量と、メディア上の空き容量の両方を含む) が警告しきい値の設定を下回った場合に警告を報告します。このしきい値は、データ サイズとディスクの空き容量の合計に対する割合で表されます。モニターは、使用可能な容量が重大しきい値を下回った場合に重大アラートを報告します。

Knowledge Base article:

概要

このモニターは、ログ ファイルおよびログ ファイルをホストするメディアで使用可能な領域を監視します。メディアで使用可能な領域は、ファイルの少なくとも 1 つで自動拡張が有効になっている場合に、使用可能な領域の一部として考慮されます。

原因

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

パフォーマンス データを表示するには、次のリンクを使用してください。DB ファイル ログの空き領域のパフォーマンス データ

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

自動拡張なし

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

自動拡張有効

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

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

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

解決方法

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

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

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

名前

説明

既定値

Azure 最大ファイル サイズ (MB)

Azure BLOB Storage に保存されているデータ ファイルの最大サイズ。ワークフローはこの値をファイルごとの最大記憶域容量と見なします。

1048576

有効

 

はい

アラートを生成する

 

はい

間隔 (秒)

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

900

同期時刻

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

 

重大のしきい値

モニターは、値がこのしきい値を下回ると状態を重大に変更します。このしきい値と警告しきい値 (両方のしきい値を含む) の間にあると、モニターは警告状態になります。

10

警告しきい値

モニターは、値がこのしきい値を下回ると状態を警告に変更します。

20

タイムアウト (秒)

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

300

Element properties:

TargetMicrosoft.SQLServer.2014.DBLogFile
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.DBLogFileSizeMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: DB ログ ファイルの容量が不足しています
コンピューター "{3}" 上の SQL インスタンス "{2}" にあるデータベース "{1}" の DB ログ ファイル "{0}" の容量が不足しています。詳細については、ナレッジ セクションを参照してください。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Monitoring.DBLogFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2014Core!Microsoft.SQLServer.2014.DBLogFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBLogFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Monitoring.DBLogFileSpaceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter4>
</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/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>SQL DB Log File</ObjectName>
<CounterName>DB Log File Free Space (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.File"]/FileID$</DBFileId>
<Value>$Data/Property[@Name='FreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
</Configuration>
</UnitMonitor>