数据库查询监控


概述

数据库查询监视器用于监控任何给定数据库的单个查询或一组查询。此基于SQL的查询监视器允许用户监控该特定查询的状态。

创建一个新的数据库查询监视器

要创建一个新的数据库查询监视器,请按照以下给定的步骤进行操作:

  1. 点击新建监视器。选择数据库查询监视器
  2. 输入监视器的显示名称
  3. 选择要为其执行查询的数据库。数据库查询监视器当前支持以下数据库的查询 -DB2,Informix,Ingres,MS SQL,MySQL,Oracle,Oracle RAC,Postgres,Sybase,DB2 for i,SAP HANA(本地)SAP Max DB。在为DB2 for i 数据库中只用于跟踪用户与用户AS400加载项
  4. 输入运行数据库的监视器主机类型-新建现有 (您可以从下拉列表中选择现有主机)。
  5. 输入数据库服务器的用户名密码
  6. 输入数据库名称
  7. 如果为MySQL,MS SQL,Oracle和PostgreSQL数据库启用了SSL身份验证,请选中启用SSL 复选框。
  8. 通过选择 单选按钮,选择是否希望查询输出
  9. 输入查询。请注意,查询数量限制为五个查询。另外,请注意查询的分隔符是换行符。
  10. 输入轮询间隔。默认情况下是5分钟。
  11. 如果要从管理服务器添加新监视器,请选择被管服务器。
  12. 从要关联数据库查询监视器的组合框,选择业务组
局限性:

从企业版Admin Server,数据库查询监控仅支持以下数据库类型 -MySQL,Oracle,DB2,MsSQL,Sybase,PostgreSQL,SAP HANA和SAP MaxDB 是不支持的。

为数据库查询监视器启用配置告警模板

您可以启用一个链接来配置告警(该链接将出现在数据库查询监视器页面中每个表的右上角)。使用链接,用户可以为表中的任何属性设置预定义阈值。

这是启用数据库查询监视器的配置告警模板的方法:

  1. 转到管理选项卡。
  2. 点击发现和数据收集下的性能轮询
  3. 性能数据收集下,点击优化数据收集 选项卡。
  4. 从下拉菜单中选择 脚本/数据库查询监视器
  5. 选中为脚本监视器和数据库查询监视器启用配置告警模板选项。
  6. 配置告警 链接将出现在数据库查询监视器页面中每个表的右上角。

监控的参数

数据库查询监视器用于监控任何给定数据库的单个查询或一组特定查询。

  • 可用性 选项卡提供了过去24小时或30天的可用性历史记录。
  • 性能 选项卡提供了过去24小时或30天的健康状况和事件。
  • 列表视图 使您可以执行批量管理配置。

使用单个查询或一组给定的查询,您可以使用Applications Manager数据库查询监视器来监控任何给定数据库的状态。查询是找出数据库是否已24x7全天候运行的最佳方法。在诸如在线商店之类的企业中,有许多用于电子商务的应用程序和数据库。在这种环境中的任何中断都可能仅意味着一件事:损失收入。

通过设置轮询间隔,可以自动执行单个查询或一组查询。通过固定轮询间隔,用户可以自动执行此过程,并在轮询结束时获得结果。结果包括执行时间(查询提供结果所花费的时间),并且还显示常规轮询间隔期间可能发生的任何错误。这些错误有助于确定数据库可能发生的任何问题。

让我们考虑一个例子。许多企业环境运行关键应用程序,这些应用程序需要24x7全天候运行。让我们假设,此类应用程序的状态保存在 "APPLICATION_STATUS" 表中。使用数据库查询监视器,用户将能够向该数据库发送一组选择的查询,以查明它们是否可运行。

|-----------------------------------------------------------|

| APPLICATIONS_STATUS                      |

|-----------------------------------------------------------|

| APPLICATIONS_NAME   | Status         |

|-----------------------------------------------------------|

| PURCHASE                    | OK             |

| CRM                                | CRITICAL    |

| PAYROLL                        | OK             |

| LEADS                            | OK             |

|-----------------------------------------------------------|

选择 * APPLICATIONS_STATUS

通过使用数据库查询监视器执行上述命令,用户将获得正在运行的应用程序列表及其状态。用户可以识别状态为'严重' 的应用程序,然后通过在Applications Manager中配置告警来执行必要的操作。此操作可以采用创建故障工单或执行脚本来纠正问题的形式。

数据库查询监视器还可用于识别链接到多个数据库网络中的任何瓶颈,并通过识别存在问题的正确数据库来帮助消除它们。由于应用程序之一或数据资源清单在问题,因此可能出现瓶颈问题。使用数据库查询监视器,用户可以执行一组给定的查询并分析结果,从而清楚地表明引起这种情况的错误。结果包括执行时间(查询生成结果所花费的时间)。如果执行时间高于某个预定阈值,则问题出在数据库上,或者如果结果低于预定阈值,则问题出在其他地方。

支持的数据库

数据库查询监视器当前支持以下数据库的查询:

  • DB2
  • Informix
  • Ingres
  • MS SQL
  • MySQL
  • Oracle
  • Oracle RAC
  • Postgres
  • Sybase
  • SAP HANA
  • SAP MaxDB
  • DB2 for I
  • SAP MaxDB
  • SAP HANA

Applications Manager还提供了按属性类型比较输出中各种列值的功能。提供了启用或禁用报告的选项。

注意:请注意,查询数量限制为五个查询。输出中显示的总行数限制为50行

这是数据库查询监视器下与Oracle数据库类型兼容的JDBC URL的列表:

jdbc:oracle:thin:@HOSTNAME:PORTNUMBER:INSTANCE

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=PORTNUMBER)))(CONNECT_DATA=(SID=INSTANCE)(SERVER=DEDICATED)))

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=PORTNUMBER))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=INSTANCE)))

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=NODE1-VIP)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=NODE2-VIP)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MYRAC)))

在数据库查询监视器中支持存储过程

我们为数据库查询监视器中支持的所有数据库添加了对存储过程的支持。我们支持仅返回一个结果集的存储过程。

要启用存储过程,请转到管理 → 性能轮询 → 优化数据收集 → 脚本/数据库查询监视器,然后选择为数据库查询监视器启用存储过程监控


常见问题解答和故障排除

1. 如何生成SQL查询?

查询应该在一行中,最多2000个字符。请注意,在一台监视器中查询的数量限制为五个查询。另外请注意,查询的分隔符是换行符。输出中显示的总行数限制为50行。

如果结果中有一列以上,我们建议您在监视器中将一列字符串值设置为主键的值。

查询应包含一个标识符。对于涉及计数的查询,我们建议您有一个虚拟列并将其用作关键值。

我们来看下面的例子:

从提示中选择 'count' 作为值,选择count(*) 作为alert_count;

在上面的查询中,我们的标识符是 alert_count,并且设置了一个虚拟主列,称为value。在轮询期间无论何时执行此查询,我们都会根据关键值选择存储实际的计数值。在这种情况下,关键值是 alert_count

.您可以为计数属性配置告警,然后定义阈值。

供参考:https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/language-reference/identifiers-entity-sql

2. 当使用诸如count,min,max等聚合函数时,如何形成SQL查询?

查询应该在一行中,最多2000个字符。请注意,在一台监视器中查询的数量限制为五个查询。另外,请注意,查询的分隔符是换行符。输出中显示的总行数限制为50行。

如果结果中有一列以上,我们建议您在监视器中将一列字符串值设置为主键的值。

对于涉及计数的查询,我们建议您有一个虚拟列并将其用作关键值。

让我们以应用程序的某些待处理任务为例,该任务存储在 app_pending_tasks 表中,并且您要监控该应用程序的待处理任务数。

通常,我们将如下所示构成查询:

从app_pending_tasks中选择count(*)

上面查询的问题是它没有标识符。相反,您可以按如下所示形成查询。

对于MySQL, Oracle, Sybase:
---------------------------------
选择 'Number of Pending Tasks', 将 count(*) 作为 app_pending_tasks中的 totalcount

'Number of Pending Tasks' 作为主要列。

对于MS SQL, PostgreSQL, Db2:
---------------------------------
选择 'Number of Pending Tasks' 作为 NumberOfPendingTasks, 将 count(*) 作为来自 app_pending_tasks的 totalcount

'Number of Pending Tasks' 作为主要列。

现在,您可以通过分配阈值来生成告警并生成 'totalcount '的报告。

注意: 添加数据库查询监视器后,用户应为每个表选择主键并进行更新。