کنترل میزان فضای باقیمانده سرور در SQL Server
یکی از امکانات خیلی خوب SQL Server سرویس Agent می باشد که به صورت دائم در حال اجرا می باشد ، با توجه به این موضوع می توان در مدت زمان های محدود چک کرد که از فضای خالی درایو چقدر باقی باقی مانده است ، در این مقاله قصد داریم پراسیجر سیستمی xp_fixeddrives بپردازیم .
نتیجه اجرای پراسیجر بالا میزان فضای خالی درایو های سرور می باشد . ( مشابه عکس زیر )
در لینک زیر می توانید پارامتر های بیشتر این پراسیجر و پرسش و پاسخ های در این زمینه را بیشتر مطالعه کنید .
DECLARE @DriveBenchmark INT
DECLARE @MachineName NVARCHAR(1000)
DECLARE @DiskFreeSpace INT
DECLARE @DriveLetter CHAR(1)
DECLARE @AlertMessage NVARCHAR(MAX)
DECLARE @MailSubject NVARCHAR(MAX)
DECLARE @NewLine CHAR(2)
SET @NewLine = CHAR(13) + CHAR(10)
SET @DriveBenchmark = 4096 -- 4GB
SET @MailSubject = 'Free Disk Space Is Low On server: ' + @@SERVERNAME
SET @AlertMessage = ''
IF EXISTS (
SELECT *
FROM tempdb..sysobjects
WHERE id = OBJECT_ID(N'[tempdb]..[#disk_free_space]')
)
DROP TABLE #disk_Remain_Space
CREATE TABLE #disk_Remain_Space
(
DriveLetter CHAR(1) NOT NULL,
FreeMB INTEGER NOT NULL
)
INSERT INTO #disk_Remain_Space
EXEC MASTER..xp_fixeddrives
--sqldba.ir
DECLARE DriveSpace CURSOR FAST_FORWARD
FOR
SELECT DriveLetter,
FreeMB
FROM #disk_Remain_Space
OPEN DriveSpace
FETCH NEXT FROM DriveSpace INTO @DriveLetter, @DiskFreeSpace
WHILE (@@FETCH_STATUS = 0)
BEGIN
IF @DiskFreeSpace < @DriveBenchmark
BEGIN
SET @AlertMessage = @AlertMessage + 'Drive ' + @DriveLetter + ' on ' + @@SERVERNAME
+ ' has only ' + CAST(@DiskFreeSpace AS VARCHAR) + ' MB left.' + @NewLine
END
FETCH NEXT FROM DriveSpace INTO @DriveLetter, @DiskFreeSpace
END
CLOSE DriveSpace
DEALLOCATE DriveSpace
DROP TABLE #disk_Remain_Space
--sqldba.ir
IF @AlertMessage <> ''
BEGIN
EXECUTE msdb.dbo.sp_send_dbmail
@recipients = 'Girande_Email@email.ir', -- گیرنده ایمیل
@copy_recipients = 'Administrator@site.net', -- ایمیل مدیر دیتابیس
@Subject = @MailSubject,
@Body = @AlertMessage
,@importance = 'High'
END
در مقاله ی مانیتور کردن میزان مصرف CPU در اس کیو ال سرور مراحل ایجاد ایمیل سرور و جاب مربوطه را در SQL Server را آموزش دادیم . با قرار دادن اسکریپت بالا در جاب ایجاد شده می توان به صورت دوره ای میزان فضای خالی درایو را چک کرد .
دیدگاه ها 1