Genişletilmiş olayları için PowerShell sağlayıcı kullanın

Sen-ebilmek yönetmek SQL ServerGenişletilmiş olayları kullanarak SQL ServerPowerShell sağlayıcısını. XEvent alt klasörü altında sqlserver sürücünün kullanılabilir. Klasörü aşağıdaki yöntemlerden birini kullanarak erişebilirsiniz:

  • Bir komut istemine sqlps, sonra enter tuşuna basın. Türü cd xevent, sonra enter tuşuna basın. Buradan sen-ebilmek kullanma cdve dirkomutları (ya da Set-Locationve Get-Childitemcmdlets) örnek adı ve sunucu adı gidin.

  • Nesne Explorer'da örnek adı, genişletin yönetimi, sağ Genişletilmiş olaylarıve'yi PowerShell başlatmak. Bu, aşağıdaki yolda PowerShell başlatır:

    ps SQLSERVER:\XEvent\ServerName\InstanceName>

    [!NOT]

    Sen-ebilmek başlamak PowerShell altında herhangi bir düğümden Genişletilmiş olayları. Örneğin, sağ tıklatarak oturumlarıve'yi PowerShell başlatmak. PowerShell düzeyinde derin Oturumlar klasörünü balar.

Varolan Genişletilmiş olayları oturumlar ve ilişkili olayları, hedefleri ve yüklemler görüntülemek için XEvent klasör ağacını göz atabilirsiniz. Örneğin ps SQLSERVER:\XEvent\ danServerName\ InstanceName> yazarsanız yolu, cd oturumları, enter tuşuna basın girin dirve enter tuşuna basın, bu örneği üzerinde depolanan oturum listesini görebilirsiniz. Sen-ebilmek da görüş oturumu çalışır durumda olup olmadığını (ve bunu nasıl böyle uzun olur), ve ister oturum örneği başlatıldığında başlatılacak biçimde yapılandırılmış.

Olayları, kendi predictates ve bir oturum ile ilişkili olan hedefleri görüntülemek için oturum için dizinleri değiştirmek ve olayları ya da hedef klasörü görüntüleme. Örneğin, olaylara ve varsayılan sistem sağlık oturumdan, ps SQLSERVER:\XEvent\ ilişkili olduğunu kendi yüklemlerServerName\InstanceName\Sessions > path, type cd system_health\events, enter tuşuna basın girin dir, yazıp enter tuşuna basın.

SQL ServerPowerShell sağlayıcısı oluşturmak, değiştirmek ve Genişletilmiş olayları oturumlar yönetmek için kullanabileceğiniz güçlü bir araç olan. Aşağıdaki bölüm, Genişletilmiş olayları ile PowerShell komut dosyalarını kullanarak temel bazı örnekler sağlar.

Örnekler

Aşağıdaki örneklerde, aşağıdakilere dikkat edin:

  • ps sqlserver komut çalıştırılmalıdır: \> istemi (yazarak kullanılabilir sqlps komut isteminden).

  • Komut varsayılan örneği kullanmak SQL Server.

  • Komut a .ps1 uzantısıyla kaydedilmelidir.

  • PowerShell yürütme ilkesi komut dosyasının çalışmasına izin vermesi gerekir. Yürütme İlkesi'ni ayarlamak için Set-Executionpolicycmdlet'i. (Daha fazla bilgi için yazın get-help set-executionpolicy-detaylı, sonra enter tuşuna basın.)

Aşağıdaki komut dosyası, 'TestSession' adlı yeni bir oturum oluşturur.

#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()

Aşağıdaki komut dosyası önceki örnekte oluşturulmuş oturumun halka arabelleği hedef ekler. (Bu örnek kullanımını gösterir Alteryöntemi. Oturumun ilk oluşturduğunuzda, hedef ekleyebileceğinizi unutmayın.)

#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()

Aşağıdaki komut dosyası, bir koşul ifadesi kullanan yeni bir oturum oluşturur. Bu durumda, oturum zaman c:\temp.log dosyası yazılır için bilgi toplar (aracılığıyla sqlserver.file_writtenolayı).

#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()

Güvenlik

Oluşturmak, değiştirmek veya Genişletilmiş olayları oturumu bırak için alter any olay oturum izni olması gerekir.

Ayrıca bkz.

Kavramlar

Oturum system_health kullanın

Genişletilmiş olayları araçları

Diğer Kaynaklar

SQL Server PowerShell Overview