通过监视数据库,可以确保及时处理数据库查询,并确保数据库本身在定义的参数内执行。此外,如果数据库查询返回意外结果值,使用PRTG的数据库监视可以通过相应的传感器状态向您发出警报。
PRTG为最常见的数据库提供了内置的本机传感器:
微软SQL服务器
MySQL服务器
PostgreSQL服务器
Oracle SQL服务器
也可以监视许多其他数据库服务器。对于这种情况,PRTG使用ActiveX数据对象(ADO)接口。
有两种类型的数据库传感器:
传感器直接监控数据库:从用户角度监控数据库。这些传感器向数据库服务器发送请求并接收相应的值。您可以选择处理数据表并在各个通道中显示值或监视事务。
传感器监控数据库性能:在服务器上以更抽象的视图监控数据库。通常,这些传感器通过Windows Management Instrumentation(WMI)监视性能计数器。
传感器直接监控数据库
PRTG提供了几个可以监视数据库内容的传感器。这种类型的传感器连接到数据库服务器,执行定义的查询,并显示整个请求和查询的执行时间。您可以使用这些传感器来处理数据表并在各个通道中显示请求的值。
以下传感器可用于此类监测:
Microsoft SQL v2传感器:监视您的Microsoft SQL server 2005或更高版本。
MySQL v2传感器:监控MySQL服务器5.0版或更高版本。
Oracle SQL v2传感器:监视Oracle数据库服务器10.2版或更高版本。
PostgreSQL传感器:监控PostgreSQL数据库7.x版或更高版本。
对于这些传感器,可以定义传感器发送到数据库服务器的有效结构化查询语言(SQL)语句。在SQL脚本文件中定义查询,并将其存储在PRTG程序目录的相应\Custom Sensors\SQL\子文件夹中。
您可以在添加传感器时选择此SQL脚本。对于每个扫描间隔,传感器执行此脚本,并对数据库进行已定义的查询,数据库将在各个通道中返回相应的值(请参阅下面的示例以了解通道值选择的示例)。使用通道设置定义特定值的限制。
这些传感器需要在探针系统上安装.NET 4.7.2或更高版本。
或者,您可以通过ADO连接使用ADO sqlv2传感器监视几乎所有可用的数据库服务器。
示例:SQL通道值选择
SQL(v2)传感器通过使用列号、列名、行号或键值对来确定它们的通道值。本节显示您可以选择哪个选项从SQL数据表中获取所需的值。
请考虑SQL查询可能从数据库返回的以下数据表:
此数据表有四列,编号如下:
0栏的名称为“物品编号”
第1栏的名称为“可用物品”
第2列的名称为“第一列”
第3列的名称为“订单”
列的编号以0开头,行的编号以0开头。该表有四行,每行包含一个“article”的属性。“物品”的ID为00、01、02、03。这也说明了正确的行编号(0、1、2、3)。
使用SQL传感器中的通道值选择选项,可以读取以下值:
第0行中的所有值(此处:00、12、2001、4)
第0列中的所有值(此处:00、01、02、03)
第1列中的所有值(此处:12345、678、90)
不可能从数据表中的任何其他单元格获取值。如果你需要这个,你必须重建你的数据表。
以下示例显示了有关此数据表的通道值选择的可能结果:
采样通道值选择
频道值按列号选择此频道显示指定列的第0行中的值。假设您将“1”定义为列号。那么通道值是“12”,因为它是列1和行0中的单元。
此选项的可能返回值为:
列号“0”返回“00”
列号“1”返回“12”
列号“2”返回“2001”
列号“3”返回“4”
按列名选择频道值此频道显示指定列的第0行中的值。假设您将“orders”定义为列名。那么通道值是“4”,因为它是列“orders”和第0行中的单元。
此选项的可能返回值为:
列名“article_id”返回“00”
列名“articles_available”返回“12”
列名“first_listing”返回“2001”
列名称“orders”返回“4”
按行号选择频道值此频道显示指定行的第0列中的值。假设您将“1”定义为行号。那么通道值是“01”,因为它是第1行和第0列中的单元。
此选项的可能返回值为:
行号“0”返回“00”
行号“1”返回“01”
行号“2”返回“02”
行号“3”返回“03”
按键值对选择通道值此通道显示第0列中键所在行的第1列中的值。假设您将“02”定义为键。那么通道值是“678”,因为它是列1中与列0中键在同一行中的单元。
此选项的可能返回值为:
键“00”返回“12”
键“01”返回“345”
键“02”返回“678”
返回“03”键
这个示例通道值选择说明了如何选择正确的选项从SQL数据表中获取所需的值,并显示了SQL传感器可以寻址的单元格。
自定义项:计算返回行数
如果在SQL server上执行用户定义函数(UDF)并想知道该UDF返回多少行,请执行以下步骤:
在SQL server上执行UDF的命令可能如下所示:
要获取此UDF返回多少行的信息,请在SQL脚本中扩展查询:
创建一个新的SQL v2传感器,并在创建传感器期间进行数据处理。
在SQL传感器的设置中,选择“按列名选择通道值”选项
在通道的列名字段中输入行数,以显示通道中该列的值。
要对SELECT语句返回的表行进行计数,请在传感器设置部分的数据处理中选择“计数表行”选项。
监视数据库性能的传感器
数据库服务器的性能传感器对数据库有一个更抽象的视图,可以从外部观察性能。它们不读取数据库的任何值,也不向数据库发送SQL查询。此传感器仅适用于Microsoft SQL。
Microsoft SQL server传感器通过WMI监视性能。可以为服务器实例手动设置不同的性能计数器,例如,常规统计信息、访问方法、缓冲区和内存管理器、锁和SQL统计信息。
Microsoft SQL Server性能传感器可用于Microsoft SQL Server 2008、2012、2014、2016和2017:
WMI Microsoft SQL Server 2008传感器
WMI Microsoft SQL Server 2012传感器
WMI Microsoft SQL Server 2014传感器
WMI Microsoft SQL Server 2016传感器
WMI Microsoft SQL Server 2017传感器