sys.sp_readerrorlog (Transact-SQL)

Gäller för:SQL Server

Låter dig läsa innehållet i SQL Server- eller SQL Server Agent-felloggfilen och filtrera på nyckelord.

Transact-SQL syntaxkonventioner

Syntax

sys.sp_readerrorlog
    [ [ @p1 = ] p1 ]
    [ , [ @p2 = ] p2 ]
    [ , [ @p3 = ] N'p3' ]
    [ , [ @p4 = ] N'p4' ]
[ ; ]

Arguments

[ @p1 = ] p1

Heltalsvärdet på den logg du vill visa. @p1 är int, med standardvärdet .0 Den aktuella felloggen har värdet .0 Det föregående är 1 (ERRORLOG.1), det före föregående är 2 (ERRORLOG.2), och så vidare.

[ @p2 = ] p2

Heltalsvärdet för produkten vars log du vill visa. @p2 är int, med standardvärdet .NULL Använd 1 för SQL Server eller 2 SQL Server Agent. Om ett värde inte anges används SQL Server-produkten.

[ @p3 = ] N'p3'

Strängvärdet för en sträng du vill filtrera på när du tittar på felloggen. @p3 är nvarchar(4000), med en standard på NULL.

[ @p4 = ] N'p4'

Strängvärdet för en extra sträng du vill filtrera på för att ytterligare förfina sökningen när du tittar på felloggen. @p4 är nvarchar(4000), med en standard på NULL. Denna parameter ger ett extra filter till den första strängsökningen @p3.

Returnera kodvärden

None.

Resultatuppsättning

Visar innehållet i den begärda felloggen. Om filtersträngar används visas endast de linjer som matchar dessa strängar.

Remarks

Varje gång SQL Server startas byts den aktuella felloggen namn till ERRORLOG.1; ERRORLOG.1 blir ERRORLOG.2, ERRORLOG.2 blir , ERRORLOG.3och så vidare. sp_readerrorlog gör det möjligt att läsa alla dessa felloggfiler så länge filerna finns.

Permissions

SQL Server 2019 (15.x) och tidigare versioner kräver VIEW SERVERTILLSTÅND på servern.

SQL Server 2022 (16.x) och senare versioner kräver antingen VIEW ANY ERROR LOG eller VIEW SERVER PERFORMANCE STATE behörighet på servern.

Exempel

Följande exempel cyklar SQL Server-felloggen.

A. Läs den aktuella SQL Server-felloggen

EXECUTE sp_readerrorlog;

B. Visa den tidigare SQL Server Agent-felloggen

EXECUTE sp_readerrorlog 1, 2;

C. Hitta loggmeddelanden som indikerar att en databas startar upp

EXECUTE sp_readerrorlog 0, 1, 'database', 'start';