sp_dbmmonitorchangealert (Transact-SQL)

Applies to: SQL Server

Adds or changes warning threshold for a specified mirroring performance metric.

Transact-SQL syntax conventions

sp_dbmmonitorchangealert
    [ @database_name = ] N'database_name'
    , [ @alert_id = ] alert_id
    , [ @threshold = ] threshold
    [ , [ @enabled = ] enabled ]
[ ; ]

Arguments

[ @database_name = ] N'database_name'

Specifies the database for which to add or change the specified warning threshold. @database_name is sysname, with no default.

[ @alert_id = ] alert_id

An integer value that identifies the warning to be added or changed. @alert_id is int, and must be one of the following values:

Value Performance metric Warning threshold
1 Oldest unsent transaction Specifies the number of minutes worth of transactions that can accumulate in the send queue before a warning is generated on the principal server instance. This warning helps measure the potential for data loss in terms of time, and it can be relevant for high-performance mode. However, the warning is also relevant for high-safety mode when mirroring is paused or suspended because the partners become disconnected.
2 Unsent log Specifies how many kilobytes (KB) of unsent log generate a warning on the principal server instance. This warning helps measure the potential for data loss in terms of KB, and it can be relevant for high-performance mode. However, the warning is also relevant for high-safety mode when mirroring is paused or suspended because the partners become disconnected.
3 Unrestored log Specifies how many KB of unrestored log generate a warning on the mirror server instance. This warning helps measure failover time. Failover time consists mainly of the time that the former mirror server requires to roll forward any log remaining in its redo queue, plus a short extra time.
4 Mirror commit overhead Specifies the number of milliseconds of average delay per transaction that are tolerated before a warning is generated on the principal server. This delay is the amount of overhead incurred while the principal server instance waits for the mirror server instance to write the transaction's log record into the redo queue. This value is relevant only in high-safety mode.
5 Retention period Metadata that controls how long rows in the database mirroring status table are preserved.

For information about the event IDs corresponding to the warnings, see Use Warning Thresholds and Alerts on Mirroring Performance Metrics (SQL Server).

[ @threshold = ] threshold

The threshold value for the warning. @threshold is int, with no default. If a value above this threshold is returned when the mirroring status is updated, an entry is entered into the Windows event log. This value represents KB, minutes, or milliseconds, depending on the performance metric.

Note

To view the current values, run the sp_dbmmonitorresults stored procedure.

[ @enabled = ] enabled

Specifies whether the warning is enabled. @enabled is bit, with a default of 1. Retention period is always enabled.

  • 0 = Warning is disabled.
  • 1 = Warning is enabled.

Return code values

None.

Result set

None.

Permissions

Requires membership in the sysadmin fixed server role, or execute permission directly on this stored procedure.

Examples

The following example sets thresholds for each of the performance metrics and the retention period for the AdventureWorks2022 database. The following table shows the values used in the example.

alert_id Performance metric Warning threshold Warning enabled?
1 Oldest unsent transaction 30 minutes Yes
2 Unsent log 10,000 KB Yes
3 Unrestored log 10,000 KB Yes
4 Mirror commit overhead 1,000 milliseconds No
5 Retention period Eight hours Yes
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 1, 30, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 2, 10000, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 3, 10000, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 4, 1000, 0;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 5, 8, 1;