Step by Step: SQL Server 에러 로그 확인 및 관리 방법

기술 자료: 2497528 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

소개

SQL Server의 현재 상태를 가장 정확하고 빠르게 파악할 수 있는 SQL Server 에러 로그를 가독하기 좋은 형태로 관리하는 방법을 소개합니다.

아울러 이를 별도의 테이블로 관리할 수 있는 방법을 설명합니다.


방법

다음 방법을 순서대로 따라 해 보세요.
  1. SQL Server 에러 로그 읽기
    1. SQL Server Management Studio(SSMS) 실행하기

      [시작], [모든 프로그램], [Micro SQL Server 2005](또는 Micro SQL Server 2008이나 2008 R2), [SQL Server Management Studio]를 차례대로 클릭하여 SQL Server Management Studio를 실행하세요.

      그림 축소그림 확대
      2503572

    2. 데이터베이스 연결하기

      연결 정보(서버 이름 또는 IP Address 로그인 정보)를 입력하여 조회하고자 하는 서버와 연결하세요.

      그림 축소그림 확대
      2503573

    3. sp_readerrolog 구문 실행

      그림 축소그림 확대
      2503574

      이 때, 실행 버튼(F5 혹은 CTRL+E)을 누르기 전에 [텍스트로 결과 표시]를(
      그림 축소그림 확대
      2497579
      )선택하거나 CTRL+T를 누르세요.

      이후 실행하게 되면 아래와 같이 가독하기 좋은 형태로 에러 로그를 확인할 수 있습니다.

      그림 축소그림 확대
      2503575


      서버의 정보(OS 및 SQL Sever의 버전, 서버 이름), master 데이터베이스 및 에러 로그 파일의 위치 및 활성화된 Trace Flag의 정보도 확인할 수 있습니다.

      스크롤바를 이동하여 현재 시점에서 주목할 만한 메시지는 없는지 확인하도록 합니다.

  2. SQL Server 에러 로그 관리하기

    SQL Server 에러 로그는 기본적으로 총 7개의 파일로 관리 됩니다. 서비스가 재시작 될 때 마다 Rollover 되며, 기본 파일의 수를 넘어서는 로그는 사라집니다.
    따라서 예기치 않은 이유로 SQL Server가 여러 번 반복적으로 재시작 되면 문제 시점의 로그를 확보할 수 없게 될 수도 있습니다. 이를 예방하기 위해 기본적으로 관리되는 7개의 파일 보다 더 많은 수의 파일로 관리되도록 조정할 수 있습니다.
    여기서는 파일의 수를 늘리는 것이 아닌 에러 로그를 테이블로 관리하는 방법을 소개합니다. 이 내용은 How to Archive your SQL Errorlogs into a Table에서도 확인할 수 있습니다.

    수 많은 로그인 실패 메시지 등이 로깅 되면서 하나의 에러 로그 파일의 크기가 매우 커지게 되는 경우가 발생할 수 있습니다.

    그림 축소그림 확대
    2503576


    이러한 경우, 에러 로그를 로그 뷰어나 sp_readerrorlog 구문으로 읽기를 시도하면 오랜 시간이 걸릴 수 있으므로 내가 원하는 시간에 대한 로그 파악이 어려울 수도 있습니다.

    이 때 활용할 수 있는 방법은 다음과 같습니다.
    1. SQL Server Errorlog 및 Agent Log 관리용 테이블 생성

      IF  NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MS_SQLERRORLOG]') AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[MS_SQLERRORLOG](
          [LogDate] [datetime] NULL,
          [ProcessInfo] [varchar](10) NULL,
          [Text] [varchar](max) NULL
      ) ON [PRIMARY]
      END
      GO
      
      
      IF  NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MS_SQLAGENTLOG]') AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[MS_SQLAGENTLOG](
          [LogDate] [datetime] NULL,
          [ProcessInfo] [varchar](10) NULL,
          [Text] [varchar](max) NULL
      ) ON [PRIMARY]
      END
      GO
    2. 현재 시점까지의 Errorlog 저장하기
      INSERT INTO MS_SQLERRORLOG
      EXEC ('sp_readerrorlog')
      GO
      
      EXEC msdb.dbo.sp_cycle_errorlog
      GO
    3. 현재 시점까지의 Agent Log 저장하기(에이전트 서비스가 반드시 동작 중이어야 함)
      INSERT INTO MS_SQLAGENTLOG
      EXEC ('sp_readerrorlog -1, 2')
      GO
      
      EXEC msdb.dbo.sp_cycle_agent_errorlog
      GO
    4. 테이블 생성 후 2), 3)의 방법을 주기적으로 수행하여 SQL Server 로그를 테이블로 이관하여 관리하면, Log Date 및 ProcessInfo 등에 따라서 원하는 내용의 로그를 보다 빠르게 확인할 수 있으며 아울러 에러 로그의 크기가 커져서 디스크의 공간을 과도하게 차지하는 것을 예방할 수 있습니다.

      그림 축소그림 확대
      2503577

추가 정보

다음 내용을 참고 하세요.


의견 보내기

표 축소표 확대
그림 축소그림 확대
의견 보내기

Microsoft 고객지원 사이트에서는 고객님의 소리를 귀담아 듣습니다. 아래 의견 보내기로 소중한 의견 보내주시기 바랍니다.

속성

기술 자료: 2497528 - 마지막 검토: 2014년 5월 26일 월요일 - 수정: 1.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
키워드:?
kbstepbystep kbhowto KB2497528

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com