97 lines
2.5 KiB
Transact-SQL
97 lines
2.5 KiB
Transact-SQL
USE [HCITools]
|
|
GO
|
|
|
|
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Check_SQL_Dumps]') AND type in (N'P', N'PC'))
|
|
DROP PROCEDURE [dbo].[Check_SQL_Dumps]
|
|
GO
|
|
|
|
/****** Object: StoredProcedure [dbo].[Check_SQL_Dumps] Script Date: 12/14/2018 13:07:58 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
|
|
|
|
|
|
CREATE PROCEDURE [dbo].[Check_SQL_Dumps]
|
|
@in_debug int = null
|
|
AS
|
|
/*=============================================================================
|
|
|
|
Explication du traitement realise par la SP
|
|
-------------------------------------------
|
|
Cette SP vérifie le log SQL des 2 dernières heures et envoie une alerte par mail si des dumps SQL ont été générés.
|
|
|
|
|
|
Contexte d'utilisation
|
|
----------------------
|
|
Cette SP est appelée par le job SQL DR92120 - Check Stack Dump
|
|
|
|
|
|
Parametres
|
|
----------
|
|
@in_debug : Si 1 alors on fait un print des commandes
|
|
|
|
Creation : 14.12.18 / SPE
|
|
|
|
Modifications : 17.03.2022 - FLA : Change DBA mail
|
|
|
|
=============================================================================*/
|
|
|
|
set nocount on;
|
|
|
|
declare @result_sp int,
|
|
@errno int,
|
|
@errmsg varchar(255)
|
|
|
|
/*------------------- Declaration des variables --------------------*/
|
|
|
|
DECLARE @dateFrom datetime,
|
|
@dateTo datetime,
|
|
@totDumps int,
|
|
@msg varchar(8000)
|
|
|
|
/*------------ Affectation des parametres aux variables ------------*/
|
|
|
|
SET @dateFrom = DATEADD(minute, -120, GETDATE())
|
|
SET @dateTo = GETDATE()
|
|
SET @msg = ''
|
|
|
|
/*-------------------------- Traitement ---------------------------*/
|
|
BEGIN TRY
|
|
|
|
CREATE TABLE #t_totDumps(LogDate datetime, ProcessInfo varchar(20), Textlog varchar(20) );
|
|
|
|
INSERT INTO #t_totDumps(LogDate,ProcessInfo,Textlog)
|
|
EXEC sys.xp_readerrorlog 0, 1, '* BEGIN STACK DUMP:', NULL, @dateFrom, @dateTo, N'desc'
|
|
|
|
SELECT @totDumps = COUNT(*) FROM #t_totDumps
|
|
DROP TABLE #t_totDumps;
|
|
|
|
IF @totDumps <> 0
|
|
BEGIN
|
|
SET @msg = 'WARNING: ' + convert(varchar,@totDumps) + ' SQL crash dumps found during the last 2 hours!';
|
|
|
|
EXEC hcitools.dbo.aps_Send_Mail_with_template
|
|
@in_param_varchar_2 = 'DBA_operator;',
|
|
@in_job_type = 3, /* 3 = warning */
|
|
@in_param_varchar_3 = @msg
|
|
END
|
|
|
|
/*---------------------- Traitement des erreurs ----------------------*/
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
/* Traitement des erreurs (avec RaiseError) */
|
|
EXEC dbo.get_Error_Info @in_RaiseError = 1
|
|
|
|
END CATCH
|
|
|
|
|
|
GO
|
|
|
|
|
|
|