다음을 통해 공유


MSSQLSERVER_605

적용 대상: SQL Server

세부 정보

attribute
제품 이름 SQL Server
이벤트 ID 605
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 잘못된 페이지
메시지 텍스트 데이터베이스 %d에서 논리 페이지 %S_PGID 가져오지 못했습니다. %I64d가 아닌 할당 단위 %I64d에 속합니다.

설명

이 오류는 일반적으로 지정된 데이터베이스의 페이지 또는 할당 손상을 나타냅니다. SQL Server는 페이지 링크를 따르거나 IAM(인덱스 할당 맵)을 사용하여 테이블에 속하는 페이지를 읽을 때 손상을 감지합니다. 테이블에 할당된 모든 페이지는 해당 테이블과 연결된 할당 단위 중 하나에 속해야 합니다. 페이지 헤더에 포함된 할당 단위 ID가 테이블과 연결된 할당 단위 ID와 일치하지 않으면 이 예외가 발생합니다. 오류 메시지에 나열된 첫 번째 할당 단위 ID는 페이지 헤더에 있는 ID이고 두 번째 할당 단위 값은 테이블과 연결된 ID입니다.

데이터 손상 오류

심각도 수준 21은 잠재적 데이터 손상을 나타냅니다. 가능한 원인은 손상된 페이지 체인, 손상된 IAM 또는 해당 개체에 대한 sys.objects 카탈로그 뷰의 잘못된 항목입니다. 이러한 오류는 하드웨어 또는 디스크 디바이스 드라이버 오류로 인해 발생하는 경우가 많습니다.

일시적인 오류

심각도 수준이 12이면 일시적인 오류가 발생할 수 있습니다. 즉, 캐시에서 발생하며 디스크의 데이터가 손상되었음을 나타내지 않습니다. 일시적인 605 오류는 다음 조건으로 인해 발생할 수 있습니다.

  • 운영 체제는 I/O 작업이 완료되었음을 SQL Server에 조기에 알합니다. 실제 데이터 손상이 없더라도 오류 메시지가 표시됩니다.

  • 최적화 프로그램 힌트 NOLOCK을 사용하여 쿼리를 실행하거나 트랜잭션 격리 수준을 READ UNCOMMITTED로 설정합니다. NOLOCK 또는 READ UNCOMMITTED 트랜잭션 격리 수준을 사용하는 쿼리가 다른 사용자가 이동하거나 변경하는 데이터를 읽으려고 하면 605 오류가 발생합니다. 일시적 605 오류인지 확인하려면 나중에 쿼리를 다시 실행합니다.

일반적으로 데이터 액세스 중에 오류가 발생하지만 후속 DBCC CHECKDB 작업이 오류 없이 완료된 경우 605 오류는 일시적일 수 있습니다.

사용자 작업

605 오류가 일시적이지 않으면 문제가 심각하며 다음 작업을 수행하여 수정해야 합니다.

  1. 다음 쿼리를 실행하여 메시지에 지정된 할당 단위와 연결된 테이블을 식별합니다. 오류 메시지에 지정된 할당 단위로 바꿉 allocation_unit_id 니다.

    USE [database_name];  
    
    GO  
    
    SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name,  
    
    au.type_desc AS allocation_type, au.data_pages, partition_number  
    
    FROM sys.allocation_units AS au  
    
    JOIN sys.partitions AS p ON au.container_id = p.partition_id  
    
    JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id  
    
    WHERE au.allocation_unit_id = '<allocation_unit_id>' OR au.allocation_unit_id = '<allocation_unit_id>'  
    
    ORDER BY au.allocation_unit_id;  
    
    GO  
    
  2. 오류 메시지에 지정된 두 번째 할당 단위 ID와 연결된 테이블에 REPAIR 절 없이 DBCC CHECKTABLE을 실행합니다.

  3. 가능한 한 즉시 REPAIR 절 없이 DBCC CHECKDB를 실행하여 전체 데이터베이스의 전체 손상 범위를 확인합니다.

  4. 오류 로그에서 605 오류가 자주 발생하는 다른 오류를 확인하고 Windows 이벤트 로그에서 시스템 또는 하드웨어 관련 문제를 검사합니다. 로그에 포함된 하드웨어 관련 문제를 해결합니다.

문제가 하드웨어와 관련이 없는 경우 다음 작업 중 하나를 수행합니다.

  1. 알려진 정리 백업에서 데이터베이스를 복원합니다. 페이지 복원 백업 기능을 활용하여 손상된 페이지만 복원할 수 있습니다.

  2. 3단계에서 수행된 DBCC CHECKDB 작업에서 권장하는 REPAIR 절을 사용하여 DBCC CHECKDB를 실행하여 손상을 복구합니다. REPAIR 절 중 하나를 사용하여 DBCC CHECKDB를 실행해도 문제가 해결되지 않으면 기본 지원 공급자에게 문의하세요. DBCC CHECKDB의 출력을 검토할 수 있도록 합니다.

    주의

    REPAIR 절이 포함된 DBCC CHECKDB가 데이터에 미치는 영향을 잘 모르는 경우 이 문을 실행하기 전에 기본 지원 공급자에게 문의하세요.

참고 항목

DBCC CHECKTABLE(Transact-SQL)