Web design and hosting, database, cloud and social media solutions that deliver business results
  • Soluzioni aziendali
    • automazione dei processi robotici
    • Software
    • Servizi database
      • Aggiornamento del server e servizi DBA
      • Integrazione dei dati
      • Power BI
      • Servizi di Datawarehouse
    • Sito Web Design
      • Design del logo
      • Gateway di pagamento
      • Localizzazione e traduzione web
      • Ottimizzazione del sito web
      • Sicurezza del sito
      • Strumenti tecnici
    • Servizi per gli affari
      • Microsoft Azure
      • Servizi Google Cloud
      • Servizi Web Amazon
    • Microsoft Office
    • Servizi di consulenza e gestione dei social media
  • Accademia
    • Il nostro ambiente di prova
    • Imparare a usare i database
      • Le basi
      • Ottieni una query aperta
      • Piano di manutenzione di SQL Server 2008
      • Utilizzo dei dati di SQL Server
      • Utilizzo delle date di SQL Server
      • Utilizzo delle funzioni di SQL Server
      • Utilizzo di SQL Server Pivot-Unpivot
      • Strumenti
    • Imparare il web design
      • Costruire il sistema di gestione dei contenuti di Ousia
      • ASP-NET
      • CSS
      • Utilizzo di JavaScript
    • Usando i social media
      • Chiedere una recensione su Google
      • Dimensioni delle immagini dei social media
      • Modifica di un account Facebook da personale a aziendale
      • Scegliere dove concentrare lo sforzo sui social media
      • Utilizzo dei metadati per impostare le immagini dei social media
    • Imparare a usare il cloud e i servizi informatici
      • Errore dell'utilità di pianificazione 2147943645
      • Richiesta SSL e generazione di file PFX in OpenSSL Simple Steps
  • Chi Siamo
    • Carriere
      • Traduttore inglese-portoghese
      • Traduttore inglese-spagnolo
    • Portfolio
    • Squadra
      • Adrian Anandan
      • Alì Al Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • Suneel Kumar
      • Surya Mukkamala
عربى (AR)čeština (CS)Deutsch (DE)English (EN-US)English (EN-GB)Español (ES)فارسی (FA)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Avvisi e-mail di spazio su disco e dimensioni del database

Creazione di una stored procedure che invierà lo spazio su disco e gli avvisi di database tramite posta elettronica

Contesto

Un nostro cliente stava lottando con lo spazio su disco su uno dei suoi server SQL. Volevamo avere una visibilità precoce di dove potevano sorgere potenziali errori e abbiamo cercato online alcuni campioni che ci hanno portato a questi due articoli;

MSDN articolo
Articolo di SQL Server Central

Il nostro codice adattato su misura ti invierà un avviso per spazio insufficiente, una dichiarazione di spazio su disco e un elenco delle dimensioni del database, quindi lo programmiamo come parte di un lavoro da eseguire in vari momenti della giornata.

Dovrai configurare un account di posta elettronica per il tuo server da utilizzare, proverò ad aggiungere un articolo per questo, ma nel frattempo dai un'occhiata a questo articolo di Pinal Dave su SQL Authority.com o questo articolo MSDN .

Codice SQL

USE [utilities]GOCREATE PROCEDURE [maint].[DiskFreeSpaceAlert]@DriveCBenchmark int= 1024,@OtherDataDriveBenchmark int= 10240,@ProfileName sysname='DatabaseEmailProfileName',@Recipients NVARCHAR(1000)='youremail@yourdomain'AS BEGIN IF EXISTS(SELECT * FROM tempdb..sysobjectsWHERE id =object_id(N'[tempdb]..[##disk_free_space]'))DROP TABLE ##disk_free_spaceCREATE TABLE ##disk_free_space(     DriveLetter CHAR(1) NOT NULL,     FreeMB INTEGER NOT NULL) DECLARE @DiskFreeSpace INTDECLARE @DriveLetter CHAR(1)DECLARE @AlertMessage VARCHAR(500)DECLARE @MailSubject VARCHAR(100) INSERT INTO ##disk_free_spaceEXEC master..xp_fixeddrives SELECT @DiskFreeSpace = FreeMB FROM ##disk_free_space where DriveLetter ='C' SET @MailSubject =''+@@SERVERNAME+' Disk Analysis'EXEC msdb..sp_send_dbmail @profile_name=@ProfileName,@recipients = @Recipients,@subject = @MailSubject,@query=N'SELECT DriveLetter,CAST(CAST(CAST(FreeMB ASDECIMAL(18,2))/CAST(1024 AS DECIMAL(18,2)) AS DECIMAL(18,2)) AS VARCHAR(20)) +'' GB '' SpaceAvailable FROM ##disk_free_space' /* Get db sizes */DECLARE @dbName sysnameCREATE TABLE ##TempDBNames(DatabaseName sysname,DATABASE_SIZE int,REMARKS varchar(254))INSERT INTO ##TempDBNamesEXEC sp_databases CREATE TABLE ##DBInfo(dbName sysname,name sysname,filepath sysname,dbType VARCHAR(10),dbSize INT,DataModified DATETIME) DECLARE dbs CURSOR FORSELECT DatabaseName FROM ##TempDBNames open dbsfetch next from dbs into @dbNameWHILE (@@FETCH_STATUS= 0)BeginEXEC ('USE '+ @dbName +' INSERT INTO ##DBInfo SELECT '''+ @dbName +''',name,physical_name,type_desc,size,(SELECTMAX(modify_date) FROM sys.tables) LastModified FROM sys.database_files')fetch next from dbs into @dbNameEndclose dbsdeallocate dbs SET @MailSubject =''+@@SERVERNAME+' Database Analysis'EXEC msdb..sp_send_dbmail @profile_name=@ProfileName,@recipients = @Recipients,@subject = @MailSubject,@query=N'SELECT dbName,dbType,(dbSize*8)/1024dbSize,DataModified FROM ##DBInfo' DROP TABLE ##DBInfoDROP TABLE ##TempDBNames/* End get dbsizes */ IF @DiskFreeSpace < @DriveCBenchmarkBeginSET @MailSubject ='Drive C free space is low on '+@@SERVERNAMESET @AlertMessage ='Drive C on '+@@SERVERNAME+' has only '+  CAST(@DiskFreeSpace AS VARCHAR)+' MB left. Please freeup space on this drive. C drive usually has OS installed on it. Lower space onC could slow down performance of the server' EXEC msdb..sp_send_dbmail @profile_name=@ProfileName,@recipients = @Recipients,@subject = @MailSubject,@body = @AlertMessageEnd DECLARE DriveSpace CURSOR FAST_FORWARD FORselect DriveLetter, FreeMB from ##disk_free_space where DriveLetter not in('C') open DriveSpacefetch next from DriveSpace into @DriveLetter,@DiskFreeSpace WHILE (@@FETCH_STATUS= 0)Beginif @DiskFreeSpace <@OtherDataDriveBenchmarkBeginset @MailSubject ='Drive '+ @DriveLetter +' free space is low on '+@@SERVERNAMEset @AlertMessage = @DriveLetter +' has only '+cast(@DiskFreeSpace as varchar)+' MB left. Please increase free space for thisdrive immediately to avoid production issues' EXEC msdb..sp_send_dbmail @profile_name=@ProfileName,@recipients = @Recipients,@subject = @MailSubject,@body = @AlertMessageEndfetch next from DriveSpace into @DriveLetter,@DiskFreeSpaceEndclose DriveSpacedeallocate DriveSpaceDROP TABLE ##disk_free_spaceEND

Attenzione!

Abbiamo dovuto adattare il nostro codice sopra poiché qualcuno ha copiato l'intera stored procedure e ci ha inviato un'e-mail in portoghese con i dettagli dello spazio su disco, quindi assicurati di compilare correttamente l'indirizzo e-mail.

Autore

Valutazione

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

Site Links

RSSLoginLink Cookie PolicyMappa del sito

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom

Partnered With

Le impostazioni di questo sito sono impostate per consentire tutti i cookie. Questi possono essere modificati sulla nostra pagina politica e le impostazioni dei cookie. Continuando a utilizzare questo sito l'utente accetta l'utilizzo dei cookie.
Ousia Logo
Logout
Ousia CMS Loader