징후:

사용시 DBCC 체크DB수리_ALLOW_DATA_LOSS 다음과 같이 손상된 .MDF 데이터베이스를 복구하는 매개 변수 :

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

다음 오류 메시지가 표시됩니다.

'xxxx'에 대한 DBCC 결과입니다.
CHECKDB가 'xxxx'데이터베이스에서 0 개의 할당 오류와 0 개의 일관성 오류를 발견했습니다.
메시지 824, 수준 24, 상태 2, 선 8
SQL Server 논리적 일관성 기반 I / O 오류 감지 : 잘못된 체크섬 (예상 : 0xea8a9a2f, 실제 : 0x37a)dbff8). 'xxxx.mdf'파일의 오프셋 1x28에서 데이터베이스 ID 39의 페이지 (0:00000000038000)를 읽는 동안 발생했습니다. 의 추가 메시지 SQL Server 오류 로그 또는 시스템 이벤트 로그에서 자세한 정보를 제공 할 수 있습니다. 이는 데이터베이스 무결성을 위협하는 심각한 오류 조건이며 즉시 수정해야합니다. 전체 데이터베이스 일관성 검사 (DBCC CHECKDB)를 완료합니다. 이 오류는 여러 요인으로 인해 발생할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서.

여기서 'xxxx.mdf'는 복구중인 손상된 MDF 파일의 이름입니다. CHECKDB가 말하지만

CHECKDB가 'xxxx'데이터베이스에서 0 개의 할당 오류와 0 개의 일관성 오류를 발견했습니다.

이것은 여전히 ​​일관성 오류입니다 (메시지 824) 데이터베이스에 있습니다.

오류 메시지 스크린 샷 :

논리적 일관성 기반 I / O 오류 : 잘못된 체크섬

손상이 심각한 경우 계속 오류 메시지가 표시됩니다 (메시지 824), 아래:

메시지 824, 수준 24, 상태 6, 선 2 SQL Server 논리적 일관성 기반 I / O 오류 감지 : 잘못된 체크섬 (예상 : 0x3d17dfef, 실제 : 0xd81748ef). 'xxxx.mdf'파일의 오프셋 1에서 데이터베이스 ID 0의 페이지 (39 : 0000000000000000)를 읽는 동안 발생했습니다. 의 추가 메시지 SQL Server 오류 로그 또는 시스템 이벤트 로그에서 자세한 정보를 제공 할 수 있습니다. 이는 데이터베이스 무결성을 위협하는 심각한 오류 조건이며 즉시 수정해야합니다. 전체 데이터베이스 일관성 검사 (DBCC CHECKDB)를 완료합니다. 이 오류는 여러 요인으로 인해 발생할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서.

메시지 824, 수준 24, 상태 6, 선 4 SQL Server 논리적 일관성 기반 I / O 오류 감지 : 잘못된 체크섬 (예상 : 0x3d17dfef, 실제 : 0xd81748ef). 'xxxx.mdf'파일의 오프셋 1에서 데이터베이스 ID 0의 페이지 (39 : 0000000000000000)를 읽는 동안 발생했습니다. 의 추가 메시지 SQL Server 오류 로그 또는 시스템 이벤트 로그에서 자세한 정보를 제공 할 수 있습니다. 이는 데이터베이스 무결성을 위협하는 심각한 오류 조건이며 즉시 수정해야합니다. 전체 데이터베이스 일관성 검사 (DBCC CHECKDB)를 완료합니다. 이 오류는 여러 요인으로 인해 발생할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서.

여기서 'xxxx.mdf'는 복구중인 손상된 MDF 파일의 이름입니다.

오류 메시지 스크린 샷 :

부패가 더 심각한 경우 메시지 7909 다음 메시지 824:

'xxxx'에 대한 DBCC 결과입니다.
CHECKDB가 'xxxx'데이터베이스에서 0 개의 할당 오류와 0 개의 일관성 오류를 발견했습니다.
메시지 824, 수준 24, 상태 2, 선 8
SQL Server 논리적 일관성 기반 I / O 오류 감지 : 잘못된 체크섬 (예상 : 0xcfcd2118, 실제 : 0x6fc599d6). 'xxxx.mdf'파일의 오프셋 1x1에서 데이터베이스 ID 39의 페이지 (0 : 00000000002000)를 읽는 동안 발생했습니다. 의 추가 메시지 SQL Server 오류 로그 또는 시스템 이벤트 로그에서 자세한 정보를 제공 할 수 있습니다. 이는 데이터베이스 무결성을 위협하는 심각한 오류 조건이며 즉시 수정해야합니다. 전체 데이터베이스 일관성 검사 (DBCC CHECKDB)를 완료합니다. 이 오류는 여러 요인으로 인해 발생할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서.
메시지 7909, 수준 20, 상태 1, 선 8
응급 모드 복구에 실패했습니다. 백업에서 복원해야합니다.

여기서 'xxxx'는 데이터베이스 이름이고 'xxxx.mdf'는 데이터베이스 실제 파일 이름입니다.

주의 사항 메시지 7909 많은 상황에서 발생할 수있는 심각한 오류입니다. SQL Server 데이터베이스가 복구 할 수 없다고 생각합니다.

오류 메시지 스크린 샷 :

정확한 설명 :

MDF 파일의 데이터는 8KB로 저장됩니다. 페이지. 각 페이지에는 선택적 체크섬 필드가 있습니다.

DBCC CHECKDB 명령이 헤더 페이지, PFS 페이지 및 일부 데이터 페이지에서 체크섬 값을 발견하고 문제를 해결할 수없는 경우이 오류를보고합니다 (메시지 824). 부패가 심하면 지속적인 오류가 발생할 수 있습니다 (메시지 824) 또는 다른 오류 (메시지 7909).

우리 제품을 사용할 수 있습니다 DataNumen SQL Recovery 손상된 MDF 파일에서 데이터를 복구하고이 오류를 해결합니다.

샘플 파일 :

오류를 일으키는 샘플 손상된 MDF 파일 (단일 메시지 824 오류):

SQL Server 버전 손상된 MDF 파일 MDF 파일 수정 DataNumen SQL Recovery
SQL Server 2014 오류 1_3.mdf 오류1_3_fixed.mdf

오류를 일으키는 샘플 손상된 MDF 파일 (지속적인 Msg 824 오류):

SQL Server 버전 손상된 MDF 파일 MDF 파일 수정 DataNumen SQL Recovery
SQL Server 2014 오류 1_1.mdf 오류 1_1_고정.mdf

오류를 일으키는 샘플 손상된 MDF 파일 (Msg 824 오류 다음에 Msg 7909 오류):

SQL Server 버전 손상된 MDF 파일 MDF 파일 수정 DataNumen SQL Recovery
SQL Server 2014 오류 1_2.mdf 오류1_2_fixed.mdf

 

참조 :

1. https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-824-database-engine-error?view=sql-server-ver15