다음을 통해 공유


MSSQLSERVER 오류 823

적용 대상:SQL Server

세부 정보

attribute
제품 이름 SQL 서버
이벤트 ID 823
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 B_HARDERR
메시지 텍스트 파일 '%ls'의 오프셋 %#016I64x에서 %S_MSG 중 운영 체제에서 SQL Server에 대한 오류 %ls을(를) 반환했습니다. SQL Server 오류 로그 및 시스템 이벤트 로그의 추가 메시지는 자세한 정보를 제공할 수 있습니다. 데이터베이스 무결성을 위협하며 즉시 수정해야 하는 심각한 시스템 수준 오류 조건입니다. 전체 데이터베이스 일관성 검사(DBCC CHECKDB)를 완료합니다. 이 오류는 여러 요인으로 인해 발생할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서를 참조하세요.

설명

SQL Server는 Windows API(예: ReadFile, WriteFile, ReadFileScatter, WriteFileGather)를 사용하여 파일 I/O 작업을 수행합니다. SQL Server는 이러한 I/O 작업을 수행한 후 이러한 API 호출과 관련된 오류 조건을 확인합니다. 운영 체제 오류로 API 호출이 실패하면 SQL Server에서 오류 823을 보고합니다.

823 오류 메시지에는 다음 정보가 포함됩니다.

  • I/O 작업이 수행된 데이터베이스 파일입니다.
  • I/O 작업이 시도된 파일 내의 오프셋입니다. 파일 시작부터 실제 바이트 오프셋입니다. 이 숫자를 8,192로 나누면 오류의 영향을 받는 논리적 페이지 번호가 표시됩니다.
  • I/O 작업이 읽기 또는 쓰기 요청인지 여부입니다.
  • 괄호 안의 운영 체제 오류 코드 및 오류 설명입니다.

운영 체제 오류: 읽기 또는 쓰기 Windows API 호출이 실패하고 SQL Server에서 Windows API 호출과 관련된 운영 체제 오류가 발생합니다. 다음 메시지는 823 오류의 예입니다.

Error: 823, Severity: 24, State: 2.
2010-03-06 22:41:19.55 spid58 The operating system returned error 1117 (The request could not be performed because of an I/O device error.) to SQL Server during a read at offset 0x0000002d460000 in file 'e:\program files\Microsoft SQL Server\mssql\data\mydb.MDF'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe, system-level error condition that threatens database integrity and must be corrected immediately. It is recommended to complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

오류 메시지의 파일과 연결된 데이터베이스의 DBCC CHECKDB 문에서 오류가 표시될 수 있습니다. 823 오류가 표시되면 DBCC CHECKDB 문을 실행할 수 있습니다. DBCC CHECKDB 문에서 오류를 보고하지 않는 경우 간헐적인 시스템 문제 또는 디스크 문제가 있을 수 있습니다.

추적 플래그 818을 사용하는 경우 823 오류에 대한 추가 진단 정보가 SQL Server 오류 로그 파일에 기록될 수 있습니다. 자세한 내용은 SQL Server 진단에서 부실 읽기 또는 쓰기 손실로 인해 보고되지 않은 I/O 문제를 감지하는 것을 참조 하세요.

원인

823 오류 메시지는 일반적으로 I/O 요청의 경로에 있는 기본 스토리지 시스템 또는 하드웨어 또는 드라이버에 문제가 있음을 나타냅니다. 파일 시스템에 불일치가 있거나 데이터베이스 파일이 손상된 경우이 오류가 발생할 수 있습니다. 파일 읽기의 경우 SQL Server는 이미 823을 반환하기 전에 읽기 요청을 네 번 다시 시도했습니다. 다시 시도 작업이 성공하면 쿼리가 실패하지 않지만 메시지 MSSQLSERVER_825 ERRORLOG 및 이벤트 로그에 기록됩니다.

사용자 작업

  • 이 문제가 발생하는 다른 페이지(동일한 데이터베이스 또는 다른 데이터베이스)에 있는 suspect_pages 표를 msdb 검토합니다.

  • DBCC CHECKDB 명령을 사용하여 823 메시지에 보고된 볼륨과 동일한 볼륨에 있는 데이터베이스의 일관성을 검사합니다. DBCC CHECKDB 명령에서 불일치가 발견되면 DBCC CHECKB에서 보고한 데이터베이스 일관성 오류를 해결하는 방법의 지침을 사용합니다.

  • Windows 이벤트 로그에서 운영 체제나 스토리지 디바이스 또는 디바이스 드라이버에서 보고한 오류 또는 메시지를 검토합니다. 어떤 방식으로 이 오류와 관련된 경우 먼저 해당 오류를 해결합니다. 예를 들어 823 메시지 외에도 이벤트 로그의 디스크 원본에서 보고한 "드라이버가 \Device\Harddisk4\DR4에서 컨트롤러 오류를 감지했습니다."와 같은 이벤트를 확인할 수도 있습니다. 이 경우, 이 디바이스에 파일이 있는지 평가하고 해당 디스크 오류를 먼저 수정해야 합니다.

  • SQLIOSim 유틸리티를 사용하여 디스크 하위 시스템 유틸리티에서 SQL Server 작업을 시뮬레이션하여 이러한 823 오류를 일반 SQL Server I/O 요청 외부에서 재현할 수 있는지 확인합니다. SQLIOSim 유틸리티는 SQL Server 2008 이상 버전과 함께 제공됩니다. 따라서 별도의 다운로드가 필요하지 않습니다. 일반적으로 C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Binn 폴더에서 찾을 수 있습니다.

  • 하드웨어 공급업체 또는 디바이스 제조업체와 협력하여

    • 하드웨어 디바이스 및 구성은 SQL Server의 I/O 요구 사항을 준수합니다.
    • I/O 경로에 있는 모든 디바이스의 디바이스 드라이버 및 기타 지원 소프트웨어 구성 요소가 최신 상태입니다.
  • 하드웨어 공급업체 또는 디바이스 제조업체가 진단 유틸리티를 제공한 경우 이를 사용하여 I/O 시스템의 상태를 평가합니다.

  • 문제가 발생하는 이러한 I/O 요청의 경로에 필터 드라이버 가 있는지 평가합니다.

    • 해당 필터 드라이버의 업데이트가 있는지 확인
    • 이러한 필터 드라이버를 제거하거나 사용하지 않도록 설정하여 823 오류를 발생시키는 문제가 사라지는지 확인할 수 있나요?