Главная > SQL Server > SQL Server: Наблюдение за дисковым пространством

SQL Server: Наблюдение за дисковым пространством

В этой заметке представлен способ наблюдения за дисковым пространством на сервере с SQL Server для бедных, для случая если у вас нет каких-либо других централизованных систем мониторинга за инфраструктурой.

T-SQL скрипт использует утилиту fsutil.exe операционной системы, получает от неё данные и в случае если свободное пространство хотя бы на одном диске менее 20%, то выполняет оповещение по email (естественно компонент DatabaseMail на SQL Server должен быть уже настроен и работоспособен).

Скрипт можно выполнять как вручную, так и настроив job в SQL Agent, результаты выполнения будут такими:

— в окне SQL Server Management Studio
DiskSpaceStatus1

— в Outlook
DiskSpaceStatus2

Настройка безопасности:
Для выполнения утилиты в командной строке Windows серверу SQL Server требуются права администратора.
Job с данным скриптом выполняется в контексте учётной записи Windows, из под которой запущен SQL Agent, поэтому у соответствующей учетной записи должны быть соответствующие права.

Скачать T-SQL скрипт: FreeDiskSpaceStatus_v03042013_forblog.sql

Скрипт протестирован на:
— SQL Server 2008 R2, 2012
— ОС Windows Server 2008, 2008R2

Дополнительные материалы:
Объём дисков на T-SQL
Monitoring SQL Server Disk Space

Реклама
Рубрики:SQL Server
  1. Александр
    03.07.2013 в 14:02

    1. вариант
    USE msdb ;
    GO
    declare @FreeSize varchar(1000)
    exec @FreeSize=master.dbo.xp_fixeddrives

    2. вариант
    USE msdb ;
    GO
    CREATE TABLE #Freedrives (drive char,[freeMB] int)
    INSERT INTO #Freedrives EXEC master..xp_fixeddrives
    DECLARE @list varchar(500)
    SET @list = ‘free space on hard disk’+NCHAR(13)
    SELECT @list = @list + drive + ‘ — ‘ + CONVERT(VARCHAR(7),#Freedrives.freeMB) + ‘mb, ‘ + NCHAR(13) FROM #Freedrives
    DROP TABLE #Freedrives
    select @list

    ps. найдено в интернете

    • 03.07.2013 в 14:10

      Спасибо за комментарий.
      В моём варианте важно было получить % свободного места, а не размер свободного места на диске. К сожалению штатные функции\процедуры SQL Server не позволяют узнать размер диска, чтобы можно было посчитать процент свободного места.
      Зачем нужен процент свободного места? — идея заключается в том, чтобы поддерживать процент свободного места на томе NTFS в размере не менее 15-20%, т.к. при данном показателе можно считать что файловая система NTFS из-за своих особенностей не испытывает просадки производительности.

  2. Сергей
    21.04.2014 в 16:19

    Полезная заметка,
    но никак не могу разобраться, почему скрипт не работает на одном из серверов : получаю сообщение на команду exec xp_cmdshell ‘fsutil volume diskfree c:\’ — Для работы с программой FSUTIL требуются права администратора.

    пробовал от имение sa и от windows аутентификации. права админские, uac отключен.

  3. 05.06.2014 в 17:11

    Все бы хорошо, но вместо: «Есть информация для рассылки» получаю знаки вопроса и сообщение:
    сonfiguration option ‘show advanced options’ changed from 1 to 1. Run the RECONFIGURE statement to install.
    Configuration option ‘xp_cmdshell’ changed from 1 to 1. Run the RECONFIGURE statement to install.

  4. Владислав
    02.06.2016 в 11:51

    Скрипт не рабочий, проверил на 4 серверах ms sql 2008R2, везде выдаёт пустую строку с сообщением «Нет информации для рассылки». Права есть, sp_configure настроено, exec master..xp_cmdshell ‘fsutil volume diskfree C:’ отдельным запуском информацию выводит, но никакой информации по ISERT во временную глобальную таблицу ##SENDMAIL_TEMP_TBL не поступает, что подтверждает SELECT из неё.

  5. Alex
    02.06.2016 в 15:06

    да, тоже не работает

  6. лекарь говнокода
    02.06.2016 в 15:58

    это от того что утилита fsutil русская, для работы скрипта нужно заменить строку

    where t1.cmd_output like ‘Total # of free bytes%’ and t2.cmd_output like ‘Total # of bytes%’

    на

    where t1.cmd_output like ‘%Всего свободно байт%’ and t2.cmd_output like ‘%Всего байт%’

  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: