Advertisements
This script will check the Automon server status, when the ping fails five times based on the run schedule, it will automatically place it on maintenance mode.
SP:
-- exec usp_ping_server_morethan_5_fail_status_change -- select * from DBA_All_servers where SVR_status<>'running' -- select * from tbl_Error_handling where Module_name='ping' alter proc usp_ping_server_morethan_5_fail_status_change /* Summary: Auto maintenance after 5 ping fails Contact: Muthukkumaran Kaliyamoorthy SQL DBA Description: Auto maintenance after 5 ping fails ChangeLog: Date Coder Description 2013-jan-21 Muthukkumaran Kaliyamoorhty Updated the 2012 functionality */ as BEGIN declare @count_s int select @count_s=count(*) from tbl_Error_handling E join DBA_All_servers A on (e.Server_name=a.Description) where Module_name='ping' and Upload_Date>=DATEADD(HH,-1,getdate()) --and a.SVR_status='running' group by Server_name having count(*)>=5 --select @count_s if (@count_s>=5) begin DECLARE @server_name SYSNAME DECLARE @DESC SYSNAME DECLARE @sql varchar(8000) DECLARE @minrow int DECLARE @maxrow int declare @ping_u table (id int primary key identity, servername varchar(100),count_R varchar(100)) insert into @ping_u select Server_name,count(*) from tbl_Error_handling where Module_name='ping' and Upload_Date>=DATEADD(HH,-1,getdate()) group by Server_name having count(*)>=5 SELECT @minrow = MIN(id)FROM @ping_u SELECT @maxrow = MAX(id) FROM @ping_u while (@minrow <=@maxrow) begin select @Server_name=Servername from @ping_u where ID = @minrow --select @minrow,@maxrow print @Server_name update DBA_All_servers set SVR_status='not ping_U' where Description=@Server_name update DBA_All_servers set maintenance_date= getdate() where Description=@Server_name --select Description,SVR_status from DBA_All_servers where Description=@Server_name set @minrow =@minrow +1 end end END