Tento typ sledování zjišťuje potenciální problémy s provozními databázemi kontrolou stavu procesů opravy a rozdělení do oddílů, které mohou způsobovat problémy s výkonem.
Knowledge Base article:
Souhrn
Typ monitorování za účelem kontroly procesu výmazu dat a vytváření oddílů
Pracovní postup spouští skript podle opakovaného plánu. Interval představuje počet sekund, po které by měl pracovní postup počkat od prvního spuštění po další. Tuto hodnotu změňte, chcete-li spouštět pracovní postup častěji nebo méně často.
Synctime
string
$Config/Synctime$
Čas synchronizace
TimeoutSeconds
int
$Config/TimeoutSeconds$
Časový limit (sekundy)
Pracovní postup spouští skript podle opakovaného plánu. Časový limit je počet sekund, po který může být skript spuštěn, než bude nuceně zastaven. Poznámka: Čas vypršení by měl být vždy nižší než interval, aby nedošlo ke spuštění více instancí skriptu najednou.
Threshold
int
$Config/Threshold$
Maximální počet dní od posledního úspěchu
Tento pracovní postup používá hodnotu „maximální počet dní od posledního úspěchu“ jako prahovou hodnotu k určení stavu. Tuto hodnotu nastavte na maximální počet dní, které mohou uplynout bez úspěšného dokončení rozdělení do oddílů a opravy, než vznikne problém.
TimesBeforeAlert
int
$Config/TimesBeforeAlert$
Počet vzorků před výstrahou
Počet vzorků k čekání, dokud sledování nepřejde do upozorňujícího stavu.
'*************************************************************************
' $ScriptName: "GetSqlNativeClientComman" $
'
' Purpose: This script is used to get SQL native client Driver name.
'
' $File: GetSqlNativeClientComman.vbs $
'*************************************************************************
Option Explicit
Function GetSqlDriverName
Dim oAPI1, oReg
Const HKEY_LOCAL_MACHINE = &H80000002
Dim strComputer, strDriverPath, strKeyPath, intValue, strValueName,arrSubKeys,oSubkey,strNewKeyPath,intDotIndex
strComputer = "."
strDriverPath="SQLOLEDB"
Set oReg=GetObject("winmgmts:\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\ODBC\ODBCINST.INI"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each oSubkey In arrSubKeys
intValue = InStr(oSubkey, "SQL Server Native Client")
if intValue <> 0 Then
strValueName = "Driver"
strNewKeyPath = strKeyPath&"\"&oSubkey
oReg.GetStringValue HKEY_LOCAL_MACHINE, strNewKeyPath, strValueName , strDriverPath
strDriverPath = Mid (strDriverPath, InStrRev(strDriverPath, "\")+1)
intDotIndex = InStr(strDriverPath, ".")
strDriverPath = Left(strDriverPath , intDotIndex-1)
end if
Next
GetSqlDriverName = strDriverPath
End Function
'Copyright (c) Microsoft Corporation. All rights reserved.
'*************************************************************************
' $ScriptName: "PartitioningAndGroomingMonitor" $
'
' Purpose: This script checks for grooming and partiting processes.
'
' $File: PartitioningAndGroomingMonitor.vbs $
'*************************************************************************
'Declarations
Dim objCN,objRS,strQuery, strCountOfJobsSucceeded, strCountOfJobs
Dim oArgs,oAPI,oBag
Dim strDBServer,strDatabase
Dim strDaysLimitThreshold
Dim ObjError, strMessageToUse, strDriverName
Set ObjError = New Error
On Error Resume Next
'Set DB connection
Set objCN = CreateObject("ADODB.Connection")
strDriverName = GetSqlDriverName
objCN.Open "Provider=" & strDriverName & ";Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & _
strDatabase & ";Data Source=" & strDBServer & ""
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strQuery = "SELECT Count(StatusCode) AS TotalCount " & _
"FROM InternalJobHistory " & _
"WHERE Command = 'Exec dbo.p_GroomPartitionedObjects and dbo.p_Grooming' "
'Query DB
Set objRS = objCN.Execute(strQuery)
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strQuery = "SELECT Count(StatusCode) AS CountOfJobsSucceeded " & _
"FROM InternalJobHistory " & _
"WHERE TimeStarted BETWEEN " & _
"DATEADD(day, -" & strDaysLimitThreshold & ", GETUTCDATE()) " & _
"AND GETUTCDATE() " & _
"AND Command = 'Exec dbo.p_GroomPartitionedObjects and dbo.p_Grooming' " & _
"AND StatusCode = 1 "
'Query DB
Set objRS = objCN.Execute(strQuery)
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strMessageToUse = "Script executed with Process Succeed Count " & strCountOfJobsSucceeded & " from Total Process Count " & strCountOfJobs
call GetState(false, strMessageToUse, strCountOfJobs, strCountOfJobsSucceeded, strDaysLimitThreshold)
WScript.Quit
Sub GetState(strErrorFlag, strMessage, strCountOfJobs, strCountOfJobsSucceeded, strDaysLimitThreshold)
Set oBag = oAPI.CreatePropertyBag()
If strErrorFlag = true Then
Call oBag.AddValue("Error", strMessage)
End If
Public Sub Save()
m_lNumber = Err.number
m_sSource = Err.Source
m_sDescription = Err.Description
m_sHelpContext = Err.HelpContext
m_sHelpFile = Err.helpfile
End Sub
Public Sub Raise()
Err.Raise m_lNumber, m_sSource, m_sDescription, m_sHelpFile, m_sHelpContext
End Sub
Public Sub Clear()
m_lNumber = 0
m_sSource = ""
m_sDescription = ""
m_sHelpContext = ""
m_sHelpFile = ""
End Sub
Public Default Property Get Number()
Number = m_lNumber
End Property
Public Property Get Source()
Source = m_sSource
End Property
Public Property Get Description()
Description = m_sDescription
End Property
Public Property Get HelpContext()
HelpContext = m_sHelpContext
End Property