CloudDB

6 de dez de 20192 min

SQL Server - Script Único Implanta Check DB Com Envio De Alerta

E agora? sistemas com erros e tudo indica que são os Bancos de Dados? Você é o responsável e precisa garantir que os
 
Bancos de Dados estão ok? Os erros começaram a alguns dias atrás?
 

 
Então, você pode rodar o script Autoridade_SQL_Server_script_unico_implanta_checkDB_com_envio_alerta_v3 e configurar
 
para receber e-mail em caso de falha, ou seja, você será o primeiro a saber do problema e poderá atuar antes da situação
 
se agravar sem a menor necessidade.
 

 
O script cria uma stored procedure para checagem e um job já schedulado para execução, diária, as 00:00 am.
 

 
Ponto de atenção para não ficar famoso: Acompanhe a primeira execução no horário mais adequado porque se o Banco de Dados
 
for muito grande pode haver um crescimento do TempDB, embora a rotina não cause bloqueios haverá mais uso de recursos.
 

 
Reportou sucesso ou falha? Caso haja feedback, dúvidas ou necessidade fineza enviar e-mail para mentor@clouddbm.com

USE [master] GO
 
/****** Object: StoredProcedure [dbo].[spu_verifica_todos_bancos_gerenciabd] Script Date: 05/10/2012 12:49:50 ******/ IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[dbo].[spu_verifica_todos_bancos_gerenciabd]')) drop procedure spu_verifica_todos_bancos_gerenciabd go
 
CREATE procedure spu_verifica_todos_bancos_gerenciabd as
 
/* This procedure will check all users databases */ --use master DECLARE @DatabaseName varchar(130) DECLARE @Mensagem varchar(175) DECLARE @CmdLine varchar(1250) -- DECLARE DBNames_cursor CURSOR FOR SELECT name FROM master..sysdatabases (nolock) where name not in ('tempdb', 'Northwind', 'pubs') OPEN DBNames_cursor FETCH NEXT FROM DBNames_cursor INTO @DatabaseName WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status <> -2) BEGIN Select @Mensagem = 'Verificando o Banco [' + RTRIM(UPPER(@DatabaseName)) + ']' PRINT @Mensagem Select @CmdLine = 'dbcc checkdb ([' + @DatabaseName + ']) with NO_INFOMSGS' --print @cmdline EXEC (@CmdLine) END FETCH NEXT FROM DBNames_cursor INTO @DatabaseName END PRINT ' ' PRINT ' ' SELECT @Mensagem = '************* NO MORE DATABASES *************' PRINT @Mensagem
 
PRINT ' ' --PRINT 'All users databases were backed up' DEALLOCATE DBNames_cursor go
 
USE [master] GO
 
/****** Object: StoredProcedure [dbo].[spu_envia_alerta_falha_checkdb_gerenciabd] Script Date: 04/23/2013 08:53:03 ******/ SET ANSI_NULLS ON GO
 
SET QUOTED_IDENTIFIER ON GO
 

 

 
USE [msdb] GO
 
/****** Object: Job [Manuten��o - CheckDB Todos os Bancos] Script Date: 04/23/2013 09:46:24 ******/ BEGIN TRANSACTION DECLARE @ReturnCode INT SELECT @ReturnCode = 0 /****** Object: JobCategory [[Uncategorized (Local)]]] Script Date: 04/23/2013 09:46:24 ******/ IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1) BEGIN EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
 
END
 
DECLARE @jobId BINARY(16) EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'Manuten��o - CheckDB Todos os Bancos', @enabled=1, @notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'No description available.', @category_name=N'[Uncategorized (Local)]', @owner_login_name=N'sa', @job_id = @jobId OUTPUT IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback /****** Object: Step [exec spu_verifica_todos_bancos] Script Date: 04/23/2013 09:46:25 ******/ EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'exec spu_verifica_todos_bancos', @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'TSQL', @command=N'exec spu_verifica_todos_bancos_gerenciabd', @database_name=N'master', @output_file_name=N'C:\checkdb_todos_bancos.txt', @flags=0 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Manh�', @enabled=1, @freq_type=4, @freq_interval=1, @freq_subday_type=1, @freq_subday_interval=0, @freq_relative_interval=0, @freq_recurrence_factor=0, @active_start_date=20130308, @active_end_date=99991231, @active_start_time=000000, @active_end_time=235959 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)' IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback COMMIT TRANSACTION GOTO EndSave QuitWithRollback: IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION EndSave:
 
GO
 

 

    250
    0