적용 대상: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는 ReadFile, WriteFile, ReadFileScatter 및 WriteFileGather와 같은 Windows API를 사용하여 파일 I/O 작업을 수행합니다. SQL Server는 이러한 I/O 작업을 수행한 후 이러한 API 호출과 관련된 오류 조건을 확인합니다. 운영 체제(OS) 오류로 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.
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에서 생성된 오류
오류 메시지에서 DBCC CHECKDB 파일과 연결된 데이터베이스의 문에서 오류가 표시될 수 있습니다. 823 오류가 표시되면 문을 실행할 DBCC CHECKDB 수 있습니다. 문에서 DBCC CHECKDB 오류를 보고하지 않으면 일시적인 시스템 문제 또는 디스크 문제가 있을 수 있습니다.
추적 플래그 818을 사용하여 SQL Server 오류 로그 파일에서 823 오류에 대한 추가 진단 정보를 볼 수 있습니다. 자세한 내용은 SQL Server 진단에서 부실 읽기 또는 쓰기 손실로 인해 보고되지 않은 I/O 문제를 감지하는 것을 참조 하세요.
원인
823 오류 메시지는 일반적으로 기본 스토리지 시스템 또는 I/O 요청 경로에 있는 하드웨어 또는 드라이버에 문제가 있음을 나타냅니다. 파일 시스템에 불일치가 있거나 데이터베이스 파일이 손상된 경우이 오류가 발생할 수 있습니다. 파일 읽기의 경우 SQL Server는 823을 반환하기 전에 읽기 요청을 네 번 다시 시도합니다. 다시 시도 작업이 성공하면 쿼리가 실패하지 않지만 메시지 MSSQLSERVER_825 ERRORLOG 및 이벤트 로그에 기록됩니다.
사용자 작업
이 문제가 발생하는 다른 페이지(동일한 데이터베이스 또는 다른 데이터베이스)의 suspect_pages 테이블을
msdb검토합니다.명령을 사용하여 동일한 볼륨(823 메시지에 보고된 데이터베이스)에 있는 데이터베이스의 일관성을 확인합니다
DBCC CHECKDB. 명령에서 불일치가DBCC CHECKDB발견되면 DBCC CHECKB에서 보고한 데이터베이스 일관성 오류를 해결하는 방법의 지침을 사용합니다.운영 체제, 스토리지 디바이스 또는 디바이스 드라이버에서 보고된 오류 또는 메시지에 대한 Windows 이벤트 로그를 검토합니다. 어떤 방식으로 이 오류와 관련된 경우 먼저 해당 오류를 해결합니다. 예를 들어 823 메시지 외에도 이벤트 로그의 디스크 원본에서 보고한 "드라이버가 \Device\Harddisk4\DR4에서 컨트롤러 오류를 감지했습니다."와 같은 이벤트를 확인할 수도 있습니다. 이 경우 이 파일이 이 디바이스에 있는지 평가한 다음 해당 디스크 오류를 수정해야 합니다.
SQLIOSim 유틸리티를 사용하여 이러한 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 오류로 인해 발생하는 문제가 사라지는지 확인할 수 있나요?
OS 오류 21이 있는 예제
이 경우 기본 OS 오류 21은 디스크 디바이스가 오프라인 상태이며 OS 및 SQL Server에서 사용할 수 없음을 나타냅니다.
Error: 823, Severity: 24, State: 2.
The operating system returned error 21 (The device is not ready.) 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.
해결 방법
비슷한 시나리오가 발생하는 경우 기본 OS 오류를 해결합니다. 이 경우 시스템 관리자 및 하드웨어 공급업체와 협력하여 디스크 디바이스가 온라인 상태이고 제대로 작동하는지 확인합니다. 보고된 오류 또는 손상이 없는지 확인합니다.
네트워크 연결이 불안정하면 데이터베이스 파일이 네트워크를 통해 액세스되는 NAS(네트워크 연결 스토리지) 또는 SAN 디바이스에 저장되는 경우와 같이 이 오류가 발생할 수도 있습니다. 이와 같은 경우 DBCC CHECKDB를 실행하여 디스크 디바이스가 복원되면 데이터베이스의 물리적 무결성을 확인해야 할 수 있습니다. 데이터베이스 손상이 보고되면 마지막으로 알려진 정상 데이터베이스 백업을 복원합니다.