Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Az SQL Server kiterjesztett eseményeit az SQL Server PowerShell-szolgáltatóval kezelheti. Az XEvent almappája az SQLSERVER meghajtó alatt érhető el. A mappát az alábbi módszerek egyikével érheti el:
Egy parancssorba írja be sqlps, majd nyomja le az ENTER billentyűt. Írja be cd xevent, majd nyomja le az ENTER billentyűt. Innen a cd- és dir parancsokkal (vagy Set-Location és Get-ChildItem parancsmagokkal) navigálhat a kiszolgáló nevére és a példány nevére.
Az Object Explorerben bontsa ki a példány nevét, bontsa ki Felügyelet, kattintson a jobb gombbal a Bővített eseményekelemre, majd kattintson a PowerShell indításaparancsra. Ezzel elindítja a PowerShellt a következő útvonalon:
PS SQLSERVER:\XEvent\ServerName\InstanceName>
Jegyzet
A PowerShellt bármely csomópontról elindíthatja Bővített eseményekalatt. Kattintson például a jobb gombbal a Munkamenetekelemre, majd kattintson a PowerShell indításaparancsra. Ez egy szinttel mélyebbre indítja a PowerShellt a Munkamenetek mappában.
Az XEvent mappafája között tallózva megtekintheti a meglévő Bővített események munkameneteket, valamint a hozzájuk kapcsolódó eseményeket, célokat és predikátumokat. Például a PS SQLSERVER:\XEvent\ServerName\InstanceName> elérési útból, ha cd-munkameneteket, nyomja le az ENTER billentyűt, írja be dir, majd nyomja le az ENTER billentyűt, láthatja az adott példányon tárolt munkamenetek listáját. Azt is megtekintheti, hogy a munkamenet fut-e (és ha igen, mennyi ideig), és hogy a munkamenet úgy van-e konfigurálva, hogy a példány indításakor induljon el.
Az események, azok előrejelzései és a munkamenethez társított célok megtekintéséhez módosíthatja a címtárakat a munkamenet nevére, majd megtekintheti az eseményeket vagy a célmappát. Az alapértelmezett rendszerállapot-munkamenethez társított események és predikátumok megtekintéséhez például a PS SQLSERVER:\XEvent\ServerName\InstanceName\Sessions> elérési útján, írja be cd system_health\events, nyomja le az ENTER billentyűt, írja be dir, majd nyomja le az ENTER billentyűt.
Az SQL Server PowerShell-szolgáltató egy hatékony eszköz, amellyel kiterjesztett események munkameneteit hozhatja létre, módosíthatja és kezelheti. Az alábbi szakasz néhány alapvető példát mutat be a PowerShell-szkriptek kiterjesztett eseményekkel való használatára.
Példák
Az alábbi példákban jegyezze fel a következőket:
A szkripteket a PS SQLSERVER:\> parancssorból kell futtatni (sqlps parancssorba való beírásával érhető el).
A szkriptek az SQL Server alapértelmezett példányát használják.
A szkripteket .ps1 kiterjesztéssel kell menteni.
A PowerShell végrehajtási szabályzatának engedélyeznie kell a szkript futtatását. A végrehajtási szabályzat beállításához használja a Set-Executionpolicy parancsmagot. (További információért írja be a get-help set-executionpolicy – részletesla, majd nyomja meg az ENTER billentyűt.)
A következő szkript létrehoz egy új munkamenetet, amely a "TestSession" nevet viseli.
#Script for creating a session.
cd XEvent
$h = hostname
cd $h
#Use the default instance.
$store = dir | where {$_.DisplayName -ieq 'default'}
$session = new-object Microsoft.SqlServer.Management.XEvent.Session -argumentlist $store, "TestSession"
$event = $session.AddEvent("sqlserver.file_written")
$event.AddAction("package0.callstack")
$session.Create()
Az alábbi szkript hozzáadja a gyűrűpuffer-célértéket az előző példában létrehozott munkamenethez. (Ez a példa az Alter metódus használatát mutatja be. Vegye figyelembe, hogy a munkamenet első létrehozásakor hozzáadhatja a célértéket.)
#Script to alter a session.
cd XEvent
$h = hostname
cd $h
cd DEFAULT\Sessions
#Used to find the specified session.
$session = dir|where {$_.Name -eq 'TestSession'}
#Add the ring buffer target and call the Alter method.
$session.AddTarget("package0.ring_buffer")
$session.Alter()
Az alábbi szkript létrehoz egy új munkamenetet, amely predikátumkifejezést használ. Ebben az esetben a munkamenet információkat gyűjt arról, hogy a c:\temp.log fájl mikor van megírva (az sqlserver.file_written eseményen keresztül).
#Script for creating a session.
cd XEvent
$h = hostname
cd $h
#Use the default instance.
$store = dir | where {$_.DisplayName -ieq 'default'}
$session = new-object Microsoft.SqlServer.Management.XEvent.Session -argumentlist $store, "TestSession2"
$event = $session.AddEvent("sqlserver.file_written")
#Construct a predicate "equal_i_unicode_string(path, N'c:\temp.log')".
$column = $store.SqlServerPackage.EventInfoSet["file_written"].DataEventColumnInfoSet["path"]
$operand = new-object Microsoft.SqlServer.Management.XEvent.PredOperand -argumentlist $column
$value = new-object Microsoft.SqlServer.Management.XEvent.PredValue -argumentlist "c:\temp.log"
$compare = $store.Package0Package.PredCompareInfoSet["equal_i_unicode_string"]
$predicate = new-object Microsoft.SqlServer.Management.XEvent.PredFunctionExpr -argumentlist $compare, $operand, $value
$event.SetPredicate($predicate)
$session.Create()
Biztonság
Kiterjesztett események munkamenetének létrehozásához, módosításához vagy elvetéséhez rendelkeznie kell az ALTER ANY EVENT SESSION engedéllyel.
Lásd még:
SQL Server PowerShell
A system_health munkamenet használata
Bővített eseményeszközök