ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mssql 로그오류 확인
    컴퓨터&모바일/MSSQL 2015. 4. 1. 15:52

    create proc sys.sp_readerrorlog(
    @p1 int = 0,
    @p2 int = NULL,
    @p3 varchar(255) = NULL,
    @p4 varchar(255) = NULL)
    as
    begin

    if (not is_srvrolemember(N'securityadmin') = 1)
    begin
      raiserror(15003,-1,-1, N'securityadmin')
      return (1)
    end

    if (@p2 is NULL)
    exec sys.xp_readerrorlog @p1
    else
    exec sys.xp_readerrorlog @p1,@p2,@p3,@p4
    end
    총 4개의 파라메타가 있는데 각 파라메타의 의미는 다음과 같습니다.
    @p1 : 0 = 현재 로그, 1 = 보관된 첫번째 로그, 2 = 보관된 두번째 로그...
    @p2 : 1 or Null = Error Log, 2 = SQL Agent Log
    @p3 and @p4 : Search 키워드, @p3과 @p4가 and 조건
    입니다.

    예를 들어보면
    sp_readerrorlog 0, 1, 'login', 'failed'
    이렇게 호출하면 현재 Error Log에서 'login' & 'failed'를 만족하는 로그를 검색해줍니다.
    하지만 Error Log는 하나가 아니고 여러개입니다.
    그래서 전체 Error를 검색하려면 @p1 파라메타에 숫자를 바꿔가면서 여러번 쿼리해야 합니다.
    그래서 전체 Error Log를 검색하기는 불편합니다.
    전체 Error Log의 갯수는  xp_enumerrorlogs 프로시져를 통해 알 수 있습니다.

    다음 쿼리는 전체 Error Log를 대상으로 검색하는 쿼리입니다.
    SET NOCOUNT ON

    DECLARE @Type CHAR(1), @Keyword1 VARCHAR(1000), @Keyword2 VARCHAR(1000)

    DECLARE @NumErrorLogs INT,
            @LogCnt INT

    DECLARE @ErrorLogs TABLE (NO INT, DATE DATETIME, SIZE INT)
    DECLARE @Errors TABLE (LogDate DATETIME, ProcessInfo VARCHAR(1000), Text VARCHAR(MAX))

    INSERT @ErrorLogs EXEC xp_enumerrorlogs

    SET @NumErrorLogs = (SELECT MAX(NO) FROM @ErrorLogs)

    SET @LogCnt = 0

    WHILE @NumErrorLogs > @LogCnt
    BEGIN
        INSERT @Errors EXEC sp_readerrorlog @LogCnt, @Type, @Keyword1, @Keyword2
        SET @LogCnt = @LogCnt + 1
    End

    SELECT LogDate, ProcessInfo, Text = REPLACE(TEXT, '. ', '.' + CHAR(10))
    FROM @Errors
    ORDER BY LogDate DESC

    sp_readerrorlog
    에서 @p2가 빠진 형태입니다.
    Log File 번호를 지정하는 대신 xp_enumerrorlogs 를 사용하여 Log File의 갯수를 확인후
    전체 파일에 대하여 sp_readerrorlog를 실행합니다.

    '컴퓨터&모바일 > MSSQL' 카테고리의 다른 글

    MSSQL CPU 사용률 높은 쿼리 찾아내는 쿼리  (0) 2019.08.01
    SQL 18456 오류  (0) 2015.04.01
    index 생성 조회 삭제  (0) 2014.12.21

    댓글

Designed by Tistory.