The monitor reports a warning when the available disk space for the publication Snapshot drops below the Warning Threshold setting. This is indicated as a percentage of the snapshot files folder size. The monitor reports a critical alert when the available space drops below the Critical Threshold.
The monitor verifies the available space on the media where the snapshot folder is located.
The alert is triggered when there is a minimal amount of space available in the snapshot folder. This can be caused by the following:
The distribution cleanup job is not running
Inadequate space remaining on the media
The Snapshot agents are running and continuously generating the snapshot files
This issue can be resolved by:
Allocating more disk space for the snapshot directory
Ensuring the distribution cleanup job is running periodically (default every 10 min)
Ensuring the snapshot agents are not unnecessarily creating snapshot files
Alternatively, you can create an alternate snapshot folder and can force the snapshot agents to use this new folder to save the files
http://msdn.microsoft.com/library/ms151327.aspx
Name | Description | Default Value |
Alert Priority | Defines Alert Priority. | Normal |
Alert Severity | Defines Alert Severity. | Error |
Enabled | Enables or disables the workflow. | Yes |
Error Threshold | Error Threshold | 10 |
Generates Alerts | Defines whether the workflow generates an Alert. | Yes |
Interval (seconds) | The recurring interval of time in seconds in which to run the workflow. | 900 |
Synchronization Time | Synchronization Time |
|
Timeout (seconds) | Specifies the time the workflow is allowed to run before being closed and marked as failed. | 300 |
Timeout for database connection (seconds) | The workflow will fail and register an event, if it cannot access the database during the specified period. | 15 |
Warning Threshold | Warning Threshold | 20 |
Target | Microsoft.SQLServer.2017.Replication.Windows.Distributor | ||
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.2017.Replication.Windows.MonitorType.DistributorSnapshotFreeSpace | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.MonitoringAccount |
<UnitMonitor ID="Microsoft.SQLServer.2017.Replication.Windows.Monitor.PublicationSnapshotFreeSpace" Accessibility="Public" Enabled="true" Target="SQL2017ReplWD!Microsoft.SQLServer.2017.Replication.Windows.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2017.Replication.Windows.MonitorType.DistributorSnapshotFreeSpace" ConfirmDelivery="false" RunAs="GPMP!Microsoft.SQLServer.MonitoringAccount">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2017.Replication.Windows.Monitor.PublicationSnapshotFreeSpace.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="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Health" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type='SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type='SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Host/Property[Type='SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SQL2017WD!Microsoft.SQLServer.2017.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<WarningPercentThreshold>20</WarningPercentThreshold>
<ErrorPercentThreshold>10</ErrorPercentThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>