通過監(jiān)視數(shù)據(jù)庫,可以確保及時處理數(shù)據(jù)庫查詢,并確保數(shù)據(jù)庫本身在定義的參數(shù)內(nèi)執(zhí)行。此外,如果數(shù)據(jù)庫查詢返回意外結(jié)果值,使用PRTG的數(shù)據(jù)庫監(jiān)視可以通過相應(yīng)的傳感器狀態(tài)向您發(fā)出警報。
PRTG為最常見的數(shù)據(jù)庫提供了內(nèi)置的本機傳感器:
微軟SQL服務(wù)器
MySQL服務(wù)器
PostgreSQL服務(wù)器
Oracle SQL服務(wù)器
也可以監(jiān)視許多其他數(shù)據(jù)庫服務(wù)器。對于這種情況,PRTG使用ActiveX數(shù)據(jù)對象(ADO)接口。
有兩種類型的數(shù)據(jù)庫傳感器:
傳感器直接監(jiān)控數(shù)據(jù)庫:從用戶角度監(jiān)控數(shù)據(jù)庫。這些傳感器向數(shù)據(jù)庫服務(wù)器發(fā)送請求并接收相應(yīng)的值。您可以選擇處理數(shù)據(jù)表并在各個通道中顯示值或監(jiān)視事務(wù)。
傳感器監(jiān)控數(shù)據(jù)庫性能:在服務(wù)器上以更抽象的視圖監(jiān)控數(shù)據(jù)庫。通常,這些傳感器通過Windows Management Instrumentation(WMI)監(jiān)視性能計數(shù)器。
傳感器直接監(jiān)控數(shù)據(jù)庫
PRTG提供了幾個可以監(jiān)視數(shù)據(jù)庫內(nèi)容的傳感器。這種類型的傳感器連接到數(shù)據(jù)庫服務(wù)器,執(zhí)行定義的查詢,并顯示整個請求和查詢的執(zhí)行時間。您可以使用這些傳感器來處理數(shù)據(jù)表并在各個通道中顯示請求的值。
以下傳感器可用于此類監(jiān)測:
Microsoft SQL v2傳感器:監(jiān)視您的Microsoft SQL server 2005或更高版本。
MySQL v2傳感器:監(jiān)控MySQL服務(wù)器5.0版或更高版本。
Oracle SQL v2傳感器:監(jiān)視Oracle數(shù)據(jù)庫服務(wù)器10.2版或更高版本。
PostgreSQL傳感器:監(jiān)控PostgreSQL數(shù)據(jù)庫7.x版或更高版本。
對于這些傳感器,可以定義傳感器發(fā)送到數(shù)據(jù)庫服務(wù)器的有效結(jié)構(gòu)化查詢語言(SQL)語句。在SQL腳本文件中定義查詢,并將其存儲在PRTG程序目錄的相應(yīng)\Custom Sensors\SQL\子文件夾中。
您可以在添加傳感器時選擇此SQL腳本。對于每個掃描間隔,傳感器執(zhí)行此腳本,并對數(shù)據(jù)庫進行已定義的查詢,數(shù)據(jù)庫將在各個通道中返回相應(yīng)的值(請參閱下面的示例以了解通道值選擇的示例)。使用通道設(shè)置定義特定值的限制。
這些傳感器需要在探針系統(tǒng)上安裝.NET 4.7.2或更高版本。
或者,您可以通過ADO連接使用ADO sqlv2傳感器監(jiān)視幾乎所有可用的數(shù)據(jù)庫服務(wù)器。
示例:SQL通道值選擇
SQL(v2)傳感器通過使用列號、列名、行號或鍵值對來確定它們的通道值。本節(jié)顯示您可以選擇哪個選項從SQL數(shù)據(jù)表中獲取所需的值。
請考慮SQL查詢可能從數(shù)據(jù)庫返回的以下數(shù)據(jù)表:

此數(shù)據(jù)表有四列,編號如下:
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)
不可能從數(shù)據(jù)表中的任何其他單元格獲取值。如果你需要這個,你必須重建你的數(shù)據(jù)表。
以下示例顯示了有關(guān)此數(shù)據(jù)表的通道值選擇的可能結(jié)果:


采樣通道值選擇
頻道值按列號選擇此頻道顯示指定列的第0行中的值。假設(shè)您將“1”定義為列號。那么通道值是“12”,因為它是列1和行0中的單元。
此選項的可能返回值為:
列號“0”返回“00”
列號“1”返回“12”
列號“2”返回“2001”
列號“3”返回“4”
按列名選擇頻道值此頻道顯示指定列的第0行中的值。假設(shè)您將“orders”定義為列名。那么通道值是“4”,因為它是列“orders”和第0行中的單元。
此選項的可能返回值為:
列名“article_id”返回“00”
列名“articles_available”返回“12”
列名“first_listing”返回“2001”
列名稱“orders”返回“4”
按行號選擇頻道值此頻道顯示指定行的第0列中的值。假設(shè)您將“1”定義為行號。那么通道值是“01”,因為它是第1行和第0列中的單元。
此選項的可能返回值為:
行號“0”返回“00”
行號“1”返回“01”
行號“2”返回“02”
行號“3”返回“03”
按鍵值對選擇通道值此通道顯示第0列中鍵所在行的第1列中的值。假設(shè)您將“02”定義為鍵。那么通道值是“678”,因為它是列1中與列0中鍵在同一行中的單元。
此選項的可能返回值為:
鍵“00”返回“12”
鍵“01”返回“345”
鍵“02”返回“678”
返回“03”鍵
這個示例通道值選擇說明了如何選擇正確的選項從SQL數(shù)據(jù)表中獲取所需的值,并顯示了SQL傳感器可以尋址的單元格。
自定義項:計算返回行數(shù)
如果在SQL server上執(zhí)行用戶定義函數(shù)(UDF)并想知道該UDF返回多少行,請執(zhí)行以下步驟:
在SQL server上執(zhí)行UDF的命令可能如下所示:


要獲取此UDF返回多少行的信息,請在SQL腳本中擴展查詢:


創(chuàng)建一個新的SQL v2傳感器,并在創(chuàng)建傳感器期間進行數(shù)據(jù)處理。
在SQL傳感器的設(shè)置中,選擇“按列名選擇通道值”選項
在通道的列名字段中輸入行數(shù),以顯示通道中該列的值。
要對SELECT語句返回的表行進行計數(shù),請在傳感器設(shè)置部分的數(shù)據(jù)處理中選擇“計數(shù)表行”選項。
監(jiān)視數(shù)據(jù)庫性能的傳感器
數(shù)據(jù)庫服務(wù)器的性能傳感器對數(shù)據(jù)庫有一個更抽象的視圖,可以從外部觀察性能。它們不讀取數(shù)據(jù)庫的任何值,也不向數(shù)據(jù)庫發(fā)送SQL查詢。此傳感器僅適用于Microsoft SQL。
Microsoft SQL server傳感器通過WMI監(jiān)視性能??梢詾榉?wù)器實例手動設(shè)置不同的性能計數(shù)器,例如,常規(guī)統(tǒng)計信息、訪問方法、緩沖區(qū)和內(nèi)存管理器、鎖和SQL統(tǒng)計信息。
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傳感器
京ICP備09015132號-996 | 違法和不良信息舉報電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室
北京哲想軟件集團旗下網(wǎng)站:哲想軟件 | 哲想動畫