Bagikan melalui


Get-SqlErrorLog

Mendapatkan log kesalahan SQL Server.

Sintaks

Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [[-Path] <String[]>]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]
Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [[-ServerInstance] <String[]>]
   [-Credential <PSCredential>]
   [-ConnectionTimeout <Int32>]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]
Get-SqlErrorLog
   [-Timespan <TimeSpan>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Since <SinceType>]
   [-Ascending]
   [-InputObject] <Server[]>
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

Deskripsi

Cmdlet Get-SqlErrorLog mendapatkan log kesalahan SQL Server.

Cmdlet ini mendukung mode operasi berikut untuk mendapatkan log kesalahan:

  • Berikan instans SQL Server.
  • Tentukan parameter Jalur instans SQL Server.
  • Panggil cmdlet dalam konteks yang valid.

Contoh

Contoh 1: Dapatkan semua log yang dihasilkan dalam jangka waktu tertentu yang memiliki kata pencarian

PS C:\> CD SQLSERVER:\SQL\MyServer\MyInstance
PS SQLSERVER:\SQL\MyServer\MyInstance> Get-SqlErrorLog -Since Yesterday  | Where-Object { $_.Text -match 'Error' } | Format-Table

Date                 Source Text                                  ArchiveNo ServerInstance
----                 ------ ----                                  --------- --------------
6/16/2016 6:04:20 PM Logon  Error: 17828, Severity: 20, State: 4.         0 MyServer\MyInstance

Perintah pertama mengubah direktori ke instans SQL Server.

Contoh 2: Dapatkan semua log yang dihasilkan dalam jangka waktu tertentu

PS C:\> CD SQLSERVER:\SQL\MyServer\MyInstance
PS SQLSERVER:\SQL\MyServer\MyInstance> Get-SqlErrorLog -Timespan '05:30:00' | Format-Table

Date                  Source  Text
----                  ------  ----
6/17/2016 12:00:00 AM spid26s This instance of SQL Server has been using a process ID of 21520 since 6/10/2016 3:56:... 
6/16/2016 6:04:20 PM  Logon   The prelogin packet used to open the connection is structurally invalid; the connectio... 
6/16/2016 6:04:20 PM  Logon   Error: 17828, Severity: 20, State: 4.

Perintah pertama mengubah direktori ke instans SQL Server.

Contoh 3: Dapatkan semua log yang dihasilkan dalam jangka waktu tertentu yang diurutkan naik dan dikelompokkan

PS C:\> CD SQLSERVER:\SQL\MyServer
PS SQLSERVER:\SQL\MyServer> ls | Get-SqlErrorLog -After '2016-05-10' -Before '2016-06-18' -Ascending | ? { $_.Text -match 'Login failed' } | Group-Object -Property ServerInstance

Count Name                      Group
----- ----                      -----
    1 MyServer                  {{ Date = 6/17/2016 2:00:04 AM, Source = Logon, Text = Login failed for user ... 
    2 MyServer\INST1            {{ Date = 6/10/2016 3:58:46 PM, Source = Logon, Text = Login failed for user

Perintah pertama mengubah direktori ke instans SQL Server.

Parameter

-AccessToken

Token akses yang digunakan untuk mengautentikasi ke SQL Server, sebagai alternatif untuk pengguna/kata sandi atau Autentikasi Windows.

Ini dapat digunakan, misalnya, untuk menyambungkan ke SQL Azure DB dan SQL Azure Managed Instance menggunakan Service Principal atau Managed Identity.

Parameter yang digunakan dapat berupa string yang mewakili token atau objek PSAccessToken seperti yang dikembalikan dengan menjalankan Get-AzAccessToken -ResourceUrl https://database.windows.net.

Parameter ini baru dalam v22 modul.

Jenis:PSObject
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-After

Menentukan bahwa cmdlet ini hanya mendapatkan log kesalahan yang dihasilkan setelah waktu yang diberikan.

Jika Anda menentukan parameter Sebelum, cmdlet ini mendapatkan semua log kesalahan yang dihasilkan sebelum yang ditentukan.

Jangan tentukan parameter ini jika Anda ingin menggunakan parameter Since atau Timespan.

Format didefinisikan sesuai dengan aturan .Net System.DataTime.Parse().

Jenis:DateTime
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Ascending

Menunjukkan bahwa cmdlet mengurutkan kumpulan log kesalahan menurut tanggal log dalam urutan naik. Jika Anda tidak menentukan parameter ini, cmdlet mengurutkan log kesalahan dalam urutan menurun.

Ketika cmdlet ini mendapatkan log kesalahan beberapa sumber, pengurutan diterapkan ke semua log kesalahan dari sumber yang sama. Log yang didapat cmdlet ini dikelompokkan menurut sumber terlebih dahulu lalu diurutkan menurut tanggal log.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Before

Menentukan bahwa cmdlet ini hanya mendapatkan log kesalahan yang dihasilkan sebelum waktu yang diberikan.

Jika parameter Setelah ditentukan, cmdlet default ke sekarang, yang berarti bahwa cmdlet mendapatkan semua log kesalahan yang dihasilkan setelah apa yang Anda tentukan untuk parameter ini hingga saat ini.

Jangan tentukan nilai untuk parameter ini jika Anda ingin menggunakan parameter Since atau Timespan. Format didefinisikan sesuai dengan aturan .Net System.Datatime.Parse().

Jenis:DateTime
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ConnectionTimeout

Menentukan jumlah detik untuk menunggu koneksi server sebelum kegagalan waktu habis. Nilai waktu habis harus berupa bilangan bulat antara 0 dan 65534. Jika 0 ditentukan, upaya koneksi tidak kehabisan waktu.

Jenis:Int32
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Credential

Menentukan objek PSCredential yang digunakan untuk menentukan kredensial untuk login SQL Server yang memiliki izin untuk melakukan operasi ini.

Jenis:PSCredential
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Encrypt

Jenis enkripsi yang akan digunakan saat menyambungkan ke SQL Server.

Nilai ini memetakan ke properti EncryptSqlConnectionEncryptOption pada objek SqlConnection driver Microsoft.Data.SqlClient.

Dalam v22 modul, defaultnya adalah Optional (untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah 'Wajib', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.

Parameter ini baru dalam v22 modul.

Jenis:String
Nilai yang diterima:Mandatory, Optional, Strict
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-HostNameInCertificate

Nama host yang akan digunakan dalam memvalidasi sertifikat SQL Server TLS/SSL. Anda harus meneruskan parameter ini jika instans SQL Server Anda diaktifkan untuk Enkripsi Paksa dan Anda ingin terhubung ke instans menggunakan nama host/nama pendek. Jika parameter ini dihilangkan, maka meneruskan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) ke -ServerInstance diperlukan untuk terhubung ke instans SQL Server yang diaktifkan untuk Enkripsi Paksa.

Parameter ini baru dalam v22 modul.

Jenis:String
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-InputObject

Menentukan objek server, sebagai array, dari instans target tempat cmdlet ini mendapatkan log.

Jenis:Server[]
Position:1
Nilai default:None
Diperlukan:True
Terima input alur:True
Terima karakter wildcard:False

-Path

Menentukan jalur, sebagai array, ke instans SQL Server tempat cmdlet ini menjalankan operasi. Jika Anda tidak menentukan nilai untuk parameter ini, cmdlet menggunakan lokasi kerja saat ini.

Jenis:String[]
Position:1
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ProgressAction

Menentukan bagaimana PowerShell merespons pembaruan kemajuan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti bilah kemajuan yang dihasilkan oleh cmdlet Write-Progress. cmdlet Write-Progress membuat bilah kemajuan yang memperlihatkan status perintah.

Jenis:ActionPreference
Alias:proga
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ServerInstance

Menentukan nama instans SQL Server, sebagai array. Untuk instans default, hanya tentukan nama komputer: MyComputer. Untuk instans bernama, gunakan format ComputerName\InstanceName.

Jenis:String[]
Position:1
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-Since

Menentukan singkatan untuk parameter Timespan.

Jangan tentukan parameter ini jika Anda ingin menggunakan parameter After atau Before.

Nilai yang dapat diterima untuk parameter ini adalah:

  • Tengah malam (mendapatkan semua log yang dihasilkan setelah tengah malam)
  • Kemarin (mendapatkan semua log yang dihasilkan dalam 24 jam terakhir).
  • LastWeek (mendapatkan semua log yang dihasilkan dalam seminggu terakhir)
  • LastMonth (mendapatkan semua log yang dihasilkan pada bulan lalu)
Jenis:SinceType
Nilai yang diterima:Midnight, Yesterday, LastWeek, LastMonth
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Timespan

Menentukan objek TimeSpan yang difilter cmdlet ini dari log kesalahan yang dilakukan berada di luar rentang waktu.

Format parameter ini adalah d.HH:mm:ss.

Parameter ini diabaikan jika Anda menggunakan parameter Since, After, atau Before.

Jenis:TimeSpan
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-TrustServerCertificate

Menunjukkan apakah saluran akan dienkripsi saat melewati rantai sertifikat untuk memvalidasi kepercayaan.

Dalam v22 modul, defaultnya adalah $true (untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah '$false', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.

Parameter ini baru dalam v22 modul.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

Input

System.String[]

Microsoft.SqlServer.Management.Smo.Server[]