Ad Widget

Collapse

Мониторинг размера базы данных MS SQL

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • deusconductor
    Junior Member
    • Jul 2018
    • 9

    #1

    Мониторинг размера базы данных MS SQL

    Добрый день! Может кто подскажет, при использовании встроенного шаблона MS SQL ODBC в Zabbix 5.0 размер базы определяет элемент данных MSSQL DB 'MY': Data file size с ключом: mssql.db.data_files_size["MY"]. Можно ли как-то получать размер доступного места в этой базе?
    Под базу выделено 10Gb (есть необходимость определять "статически"), но реально там только 3Gb данных, но Zabbix показывает всегда 10Gb без изменений.

    Click image for larger version

Name:	Снимок.PNG
Views:	479
Size:	11.2 KB
ID:	432757
  • Evgene-mmk
    Member
    • Nov 2020
    • 44

    #2
    Можно, но нужно не забывать что БД может состоять из разных файловых групп которые могут располагаться в разных каталогах и на разных дисках и свободное место нужно считать в каждой файловой группы.
    Проблема еще в том что заббикс не корректно выполняет SQL начинающиеся с use [mydatabasename] поэтому в ODBC.ini нужно создать отдельный DSN с подключением к нужной БД (если их много это может быть проблемой)

    [myserver]
    Description = myserver
    Driver = ODBC Driver 17 for SQL Server
    Server = tcp:1.1.1.1,1433
    User = zabbix
    Password = mypassword
    Database = mydatabasename

    а дальше создаем элемент данных с запросом

    Select g.GroupName
    ,sum((f.size/1024 ) * 8) [TotalSpace]
    , (sum(fileproperty(f.name, 'SpaceUsed')) /1024) * 8 as [UsedSpace]
    , sum(fileproperty(f.name, 'SpaceUsed')) * 100.0/sum(f.size) [PctUsed]
    ,sum((f.size/1024 ) * 8) - (sum(fileproperty(f.name, 'SpaceUsed')) /1024) * 8 [FreeSpace]
    From dbo.sysfiles f
    inner join sysfilegroups g ON g.groupid = f.groupid
    group by g.groupname

    полученный JSON разбираем на конечные элементы данных

    Comment

    Working...