부실 읽기 나 쓰기 손실된 때문에 보고 되지 않은 I/O 문제를 감지 하려면 추가 SQL Server 진단

이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.

이 문서의 영문 버전 보기:826433
현상
오류 605, 823, 3448, 같은 데이터 무결성 관련 오류 메시지가 나타날 경우 운영 체제, 드라이버 또는 하드웨어 문제가 원인 손실 조건이 나 읽기 부실 조건이 쓰기 3456. 다음 예제와 유사한 오류 메시지가 나타날 수 있습니다.

2003-07-24 16:43:04.57 52: 40.99 spid63 Getpage: bstat = 0x9, sstat = 0x800 캐시
2003-07-24 16:43:04.57 52: 40.99 spid63 pageno/수: objid/이어야 합니다.
2003-07-24 16:43:04.57 52: 40.99 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424
2003-07-24 16:43:04.57 52: 40.99 spid63... IAM이이 개체에 할당 된 페이지를 나타냅니다.

2003-07-24 16:52:37.67 52: 40.99 spid63 오류: 605, 심각도: 21, 상태: 1
2003-07-24 16:52:37.67 52: 40.99 spid63 개체 개체 '제목'을 ' authors', 'pubs' 속한 데이터베이스의 논리 페이지 (1:7040966)을 반입 하려고 합니다.

2003-07-24 16: 52: 40.99 spid63 오류: 3448, 심각도: 21, 상태: 1
2003-07-24 16: 52: 40.99 spid63 데이터베이스 'pubs' (데이터베이스 ID 12) 페이지 (1: 7040977)에서 트랜잭션 ID (0: 159696956)에 대 한 로그 레코드 (63361)를 취소할 수 없습니다. 페이지 정보: LSN = (63192:958360:10), 유형 = 2. 로그 정보: OpCode = 2, 1의 컨텍스트.

2003-07-09 35.92 spid66 오류: 823, 심각도: 24, 상태: 2
2003-07-09 35.92 spid66 I/O 오류 (잘못 된 페이지 ID) 'h:\sql\MSSQL\data\tempdb.mdf' 파일의 0x00000016774000 오프셋에서 읽기 중에 검색.

2010-02-06 15:57:24.14 spid17s 오류: 3456, 심각도: 21, 상태: 1.
2010-02-06 15:57:24.14 spid17s 페이지 (1:480946) 'MyDatabase' (데이터베이스 ID 17) 데이터베이스 트랜잭션 ID (0:109000187)에 대 한 로그 레코드 (58997:5252:28)를 다시 수 없습니다. 페이지: LSN = (58997:5234:17), 유형 = 3. 로그: OpCode = 2, 5, 컨텍스트 PrevPageLSN: (58997:5243:17). 데이터베이스를 백업에서 복원 하거나 데이터베이스를 복구 합니다.
추가 정보
Microsoft 확장된 관리 기능부터 시작 하 여 SQL Server 2000 서비스 팩 4 도입이 진단이 SQL Server 2005 및 이후 버전의 제품에 포함 되 고 이 기능은 I/O 관련 외부 문제의 "현상" 절에서 설명한 오류 메시지 문제를 해결 하 고 발견할 수 있도록 설계 되었습니다.

"현상" 절에 나와 있는 오류 메시지 중 하나가 나타날 경우 실제 드라이브 오류 같은 이벤트로 설명할 수 없는 SQL Server, 운영 체제, 드라이버 및 하드웨어를 사용 하 여 알려진된 문제를 검토 하십시오. 진단 다음 두 가지 조건에 대 한 정보를 제공 하려고 합니다.
  • 쓰기 손실된: WriteFile API 이지만 운영 체제, 드라이버 또는 cachingcontroller를 성공적으로 호출 제대로 플러시하지 않습니다 데이터를 실제 미디어에도 thoughSQL 서버 알림을 쓰기를 완료 했습니다.
  • 읽기 부실: ReadFile API 이지만 운영 체제, 드라이버, 또는 cachingcontroller를 성공적으로 호출 잘못 반환 된 데이터의 이전 버전.
예를 들어, Microsoft는 여기서 WriteFile API 호출이 성공한 것으로 반환 되지만 즉시 같은 데이터 블록 읽기를 하드웨어 읽기 캐시에에서 저장 되어 있는 데이터를 포함 하 여 오래 된 데이터를 반환 하는 시나리오를 확인 했습니다. 경우에 따라서는 읽기 캐시 문제 때문에이 문제가 발생합니다. 다른 경우에 쓰기 데이터가 실제 디스크에 실제로 기록 됩니다.

이러한 종류의 문제에 추가 진단을 사용 하려면 SQL Server 추적 플래그 818을 추가 했습니다. 시작 매개 변수로 추적 플래그 818을 지정할 수 있습니다-T818, 또는 SQL Server 실행 하는 컴퓨터 수 다음 문을 실행 합니다.
DBCC TRACEON(818, -1)

추적 플래그 818 성공적인 마지막 2048 하지 정렬 및 workfile I/o 포함 하 여 SQL Server 실행 하는 컴퓨터에서 수행 되는 작업을 기록 하는 추적에 사용 되는 메모리 링 버퍼를 사용 하면. 오류 605, 823 또는 3448 같은 오류가 발생 하면 들어오는 버퍼의 로그 시퀀스 번호 (LSN) 값이 최근 쓰기 목록과 비교 됩니다. 읽기 작업 중 검색 된 LSN이 쓰기 작업 중 지정 된 것 보다 오래 된, SQL Server 오류 로그에 새로운 오류 메시지가 기록 됩니다. 대부분의 SQL Server 쓰기 작업 지연식 쓰기 또는 검사점으로 발생합니다. 지연식 쓰기는 비동기 I/O를 사용 하는 배경 작업입니다. 링 버퍼 구현은 간단 하므로 성능을 무시할 수 시스템에 영향을 미칩니다입니다.

다음과 같은 메시지가 SQL Server WriteFile API 호출이 나 API ReadFile 호출에서 오류가 발생 하지 않은 나타냅니다. 하지만 LSN을 검토 하면 값이 올바르지 않습니다.

SQL Server 보고 되지 않은 OS/하드웨어 수준에 읽기 또는 쓰기 문제 데이터베이스 12 페이지 (1:75007)를 발견 했습니다.
LSN (63361) 반환, LSN 예상 (63361:16876:500)
하드웨어 공급 업체에 문의 하 고 문제를 해결 하려면 캐싱 메커니즘을 사용 하지 않도록 설정 하는 것이 좋습니다.

SQL Server 2005 부터는 오류 메시지를 보고 합니다.

SQL Server 논리적 일관성 기반 I/O 오류가 검색: 읽기 부실 합니다. <Read rite="">는 하는 동안 오류가 발생 한 &gt; <PAGEID>페이지 &gt; 데이터베이스 id <DBID>&gt; 오프셋 <PHYSICAL offset="">에 &gt; 파일 <FILE name="">에에서 &gt;. SQL Server 오류 로그 또는 시스템 이벤트 로그에 메시지를 추가로 자세한 정보를 제공할 수 있습니다. 데이터베이스 무결성을 위협 하 고 즉시 수정 해야 하는 심각한 오류 조건입니다. 전체 데이터베이스 일관성 확인 (DBCC CHECKDB)를 완료 합니다. 이 오류가 원인일 수 있습니다 여러 가지 요소입니다. 자세한 내용은 SQL Server 온라인 설명서를 참조 합니다.</FILE> </PHYSICAL> </DBID> </PAGEID> </Read>

이 시점에서 읽기 캐시에 이전 버전의 페이지에서 또는 데이터가 실제 디스크에 제대로 기록 되지 않았습니다. (쓰기 손실이 나 읽기 부실이) 두 경우 SQL Server 운영 체제, 드라이버 또는 하드웨어 계층과 관련 된 외부 문제를 보고합니다.

오류 605 나 오류 823이 있는 트랜잭션을 롤백할 때 오류 3448이 발생을 하는 경우 자동으로 SQL Server 실행 하는 컴퓨터 데이터베이스 닫고 연 데이터베이스를 복구 하려고 합니다. 오류 605 나 오류 823이 있는 첫 번째 페이지가 잘못 된 페이지로 간주 됩니다 및 페이지 id는 SQL Server 실행 하는 컴퓨터에서 유지 됩니다. (다시 실행 단계) 전 복구 하는 동안 잘못 된 페이지 id를 읽으면 페이지 헤더에 대 한 기본 정보가 SQL Server 오류 로그에 기록 됩니다. 이 작업은 쓰기 손실과 읽기 부실 시나리오를 구별 하는 데 도움이 되므로 중요 합니다.

읽기 부실 시나리오에서는 다음 두 가지 일반적인 현상이 나타날 수 있습니다.
  • 데이터베이스 파일이 닫힌 및 연 다음 thecorrect 고 최근에 읽은 데이터가 복구 중 반환 됩니다.
  • 검사점을 발급 하 고 (모든 데이터베이스 페이지를 메모리에서 제거) 하려면 DBCC DROPCLEANBUFFERS 문을 실행 andthen 최근에 작성 된 데이터 isreturned 데이터베이스에서 DBCC checkdb를 실행 합니다.
이전 단락에서 설명한 현상은 읽기 캐싱 문제를 나타냅니다 및 읽기 캐시를 해제 하 여 해결 자주 됩니다. 일반적으로 이전 단락에서 설명 하는 작업 강제로 캐시 무효화 하 고 실제 미디어가 제대로 업데이트 되었음을 시키며 성공적 데이터 읽기. 쓰기 손실 문제가 있을 때 다시 읽은 페이지가 여전히 이전 버전의 데이터를 캐싱 메커니즘을 강제로 플러시한 후에 발생 합니다.

때로는 문제가 하드웨어 캐시에 특정 수 있습니다. 필터 드라이버에 문제가 수 있습니다. 이러한 경우 백업 유틸리티와 바이러스 백신 소프트웨어 등의 소프트웨어를 검토 한 다음 필터 드라이버에 문제가 있는지 여부를 확인 합니다.

Microsoft는 오류 605 나 오류 823의 조건을 만족 하지 않는 않지만 동일한 읽기 부실이 나 쓰기 손실 작업으로 인해 발생 하는 조건을 삽입 됩니다. 어떤 경우에는 같은 lsn 값을 두 번 업데이트 페이지가 나타납니다. 개체 ID페이지 ID 가 올바르고 (페이지가 이미 개체에 할당 된), 페이지를 변경한 내용과 디스크로 플러시되는 경우이 문제가 발생할 수 있습니다. 다음 페이지 검색에서 이전 이미지가 반환 하 고 두 번째를 변경 합니다. SQL Server 트랜잭션 로그는 페이지를 동일한 LSN 값을 사용 하 여 두 번 업데이트를 보여 줍니다. 이 동작은 트랜잭션 로그 시퀀스를 복원 하려고 할 때 문제가 됩니다 또는 외래 키 오류나 손실 된 데이터 항목 같은 데이터 일관성 문제가 있습니다. 다음과 같은 오류 메시지가이 상황의 한 예를 보여 줍니다.

오류: 3456, 심각도: 21, 상태: 1 페이지 (1:)에서 트랜잭션 ID (0: 825853240) (7), ' authors' 데이터베이스에 대 한 로그 레코드 (276666)를 다시 하지 못했습니다. 페이지: LSN = (276658:4501:9), 유형 = 1. 로그: OpCode = 4, 2, 컨텍스트 PrevPageLSN: (275565:3959:31).

일부 시나리오는 다음 목록에 자세하게에서 나와:
  • LSN Sequence		Action1			Checkpoint2			Begin Transaction3			Table created or truncated4			Inserts (Pages allocated)5			Newly allocated page written to disk by Lazy Writer6			Select from table – Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID7			Rollback of transaction initiated
  • LSN Sequence		Action1			Checkpoint2			Begin Transaction3			Page Modification4			Page written to disk by Lazy Writer5			Page read in for another modification (stale image returned)6			Page Modified for a second time but because of stale image does not see first modification 7			Rollback – Fails – Transaction Log shows two different log records with the same PREV LSN for the page
SQL Server '정렬' 연산자는 주로 하 고 tempdb 데이터베이스에서 입/출력 작업을 수행합니다. 이러한 I/O 작업; 버퍼 I/O 작업과 비슷합니다. 그러나은 이미 디자인 된 유사한 문제를 해결 하려면 읽기 재시도 논리를 사용 하 여. 이 문서에서 설명 하는 추가 진단은 이러한 I/O 작업에는 적용 되지 않습니다.

Microsoft는 원인을 다음 정렬 오류는 일반적으로 읽기 부실이 나 쓰기 손실을 읽을 주목 했습니다.

2003-04-01 20:13:31.38 spid122 SQL Server 어설션: 파일:, <p:\sql\ntdbms\storeng\drs\include\record.inl>선 1447 실패 어설션 = = ' m_SizeRec &gt; 0 && m_SizeRec<= maxdatarow'.=""></=>

2003-03-29 09:51:41.12 spid57 정렬 읽기 오류 (잘못 된 페이지 ID) pageid = (0x1:0x13e9), dbid = 2, 파일 SQL Server\mssql\data\tempdb.mdf e:\program 다음 =. 다시 시도합니다.

2003-03-29: 41.13 spid57 오류: 823, 심각도: 24, 상태: 7
2003-03-29: 41.13 spid57 I/O 오류 (잘못 된 페이지 ID) 검색 'e:\program 다음 SQL Server\mssql\data\tempdb.mdf' 파일의 0x000000027d2000 오프셋에서 읽기 중...

* 00931097 Module(sqlservr+00531097) (utassert_fail + 000002E3)
* 005B1DA8 Module(sqlservr+001B1DA8) (RecBase::Resize + 00000091)
* 00407EE7 Module(sqlservr+00007EE7) (RecBase::LocateColumn + 00000012)
* 00852520 Module(sqlservr+00452520) (mergerow + 000000A4)
* 008522B3 Module(sqlservr+004522B3) (merge_getnext + 00000285)
* 0085207 D Module(sqlservr+0045207D) (mergenext + 0000000 D)
* 004FC5FB Module(sqlservr+000FC5FB) (getsorted + 00000021)

</p:\sql\ntdbms\storeng\drs\include\record.inl>
이러한 정렬 오류가 발생 하면 문제 해결 자주 tempdb 캐시 로컬 드라이브로 이동 하거나 읽기 캐싱 메커니즘을 해제 하 여.

읽기 부실이 나 쓰기 손실된 결과 데이터가 저장 되지 않기 때문에 다양 한 동작이 발생할 수 있습니다. 누락 된 데이터로 나타날 수 있습니다 있지만 일부 누락 된 데이터의 일반적인 효과 오류 644 나 오류 625 같은 인덱스 손상이 나타납니다.

오류 644 심각도 수준 21 메시지 텍스트 수 RID에 대 한 인덱스 항목을 찾을 ' %. * h s 인덱스 페이지 %1!, 인덱스 ID %d에서 데이터베이스 ' %. * ls'.
오류 625 심각도 수준 21 메시지 텍스트 slotid (%d)이 잘못 된 RID 여 %S_PGID 페이지에서에서 행을 검색할 수 없습니다.

일부 고객 행 카운트 작업을 수행한 후 행이 손실 보고 했습니다. 이 문제는 쓰기 손실된 때문에 발생합니다. 아마도 페이지 클러스터 된 인덱스 페이지 체인에 연결 되도록 보냈습니다. 쓰기 실제로 손실 되 면 데이터도 손실 됩니다.

중요: 캐싱 메커니즘을 해제와 함께 비슷한 문제가 의심 스러운 경우, 적극 권장 하는 경우의 동작 중 하나가 발생 하면 SQL Server 및 SQL Server I/O 스트레스 시뮬레이터 최신 최신 업데이트를 사용 합니다. 도 좋습니다 운영 체제와 관련된 구성을 엄격 하 게 검토를 수행 해야 합니다.

참고: Microsoft에는 희귀 한 많은 I/O 로드 일부 하드웨어 플랫폼 수 읽기 부실이 반환 확인 했습니다. 확장된 된 진단 가능한 부실 경우 읽기/손실 조건 작성을 즉시 수행에 대 한 하드웨어 공급 업체에 문의 및 테스트 된 SQLIOSim 유틸리티입니다.

SQL Server 시스템에서 설명한 것 처럼 안정적인 미디어에 확실된 한 전달을 지원 하기 위해 필요 하면SQL Server I/O 안정성 프로그램 요구 사항. SQL Server 데이터베이스 엔진에 대 한 입력 및 출력 요구 사항에 대 한 자세한 내용은 참조 하십시오. Microsoft SQL Server 데이터베이스 엔진이 입력/출력 요구 사항.

경고: 이 문서는 자동으로 번역되었습니다.

Egenskaper

Artikkel-ID: 826433 – Forrige gjennomgang: 06/04/2015 07:16:00 – Revisjon: 2.0

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2005 Compact Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Standard X64 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 R2 Analysis Services, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, SQL Server 2014 Reporting Services

  • kbhotfixserver kbqfe kbbug kbhardware kbfilter kbdriver kbdatabase kbsysadmin kbinfo kbmt KB826433 KbMtko
Tilbakemelding