438 lines
23 KiB
Transact-SQL
438 lines
23 KiB
Transact-SQL
USE [msdb];
|
|
GO
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM master.cfg.InstanceContext WHERE Business IN ('TPPHAR','TPCENT'))
|
|
BEGIN
|
|
|
|
IF EXISTS (SELECT 1 FROM sys.databases WHERE name = 'distribution')
|
|
BEGIN
|
|
|
|
DECLARE @OperatorName sysname,
|
|
@AlertName sysname;
|
|
|
|
SET @OperatorName = N'DBA_operator';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysoperators
|
|
WHERE name = @OperatorName)
|
|
EXEC msdb.dbo.sp_add_operator @name = @OperatorName,
|
|
@enabled = 1,
|
|
@weekday_pager_start_time = 90000,
|
|
@weekday_pager_end_time = 180000,
|
|
@saturday_pager_start_time = 90000,
|
|
@saturday_pager_end_time = 180000,
|
|
@sunday_pager_start_time = 90000,
|
|
@sunday_pager_end_time = 180000,
|
|
@pager_days = 0,
|
|
@email_address = N'Gal_SE_DBA@galenica.com',
|
|
@category_name = N'[Uncategorized]';
|
|
|
|
SET @AlertName = 'Replication Warning: Transactional replication latency (Threshold: latency)';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14161,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication Warning: Subscription expiration (Threshold: expiration)';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14160,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication Warning: Slow merge over LAN connection (Threshold: mergefastrunspeed)';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14164,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication Warning: Slow merge over dialup connection (Threshold: mergeslowrunspeed)';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14165,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication Warning: Long merge over LAN connection (Threshold: mergefastrunduration)';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14162,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication Warning: Long merge over dialup connection (Threshold: mergeslowrunduration)';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14163,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: agent custom shutdown';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 20578,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: agent failure';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14151,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: agent retry';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14152,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: agent success';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14150,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: expired subscription dropped';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 14157,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: Subscriber has failed data validation';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 20574,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: Subscriber has passed data validation';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 20575,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
|
|
SET @AlertName = 'Replication: Subscription reinitialized after validation failure';
|
|
|
|
IF EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts
|
|
WHERE ( name = @AlertName
|
|
AND enabled = 0)
|
|
OR ( name = @AlertName
|
|
AND has_notification = 0))
|
|
EXEC msdb.dbo.sp_delete_alert @name = @AlertName;
|
|
|
|
IF NOT EXISTS (SELECT name FROM msdb.dbo.sysalerts WHERE name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_alert @name = @AlertName,
|
|
@message_id = 20572,
|
|
@severity = 0,
|
|
@enabled = 1,
|
|
@delay_between_responses = 3600,
|
|
@include_event_description_in = 5,
|
|
@category_name = N'Replication',
|
|
@job_id = N'00000000-0000-0000-0000-000000000000';
|
|
|
|
IF NOT EXISTS ( SELECT name
|
|
FROM msdb.dbo.sysalerts AS sa
|
|
INNER JOIN msdb.dbo.sysnotifications AS sn
|
|
ON sa.id = sn.alert_id
|
|
WHERE sa.name = @AlertName)
|
|
EXEC msdb.dbo.sp_add_notification @alert_name = @AlertName,
|
|
@operator_name = @OperatorName,
|
|
@notification_method = 1;
|
|
END;
|
|
END;
|
|
GO
|