다음을 통해 공유


MSSQLSERVER_5180

적용 대상:SQL Server

세부 사항

attribute
제품 이름 SQL Server
이벤트 ID 5180
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 DSK_BAD_FCB_FILEID
메시지 텍스트 데이터베이스 '%.*ls'의 파일 ID %d이(가) 잘못되어 FCB(File Control Bank)를 열 수 없습니다. 파일 위치를 확인하고 DBCC CHECKDB를 실행합니다.

설명

SQL Server 데이터베이스 엔진에서 잘못된 파일 ID를 참조하는 경우 오류 5180으로 인해 쿼리 또는 작업이 실패할 수 있습니다. 다음은 예제입니다.

Msg 5180, Level 22, State 1, Line 1
데이터베이스 '%.*ls'의 파일 ID %d이(가) 잘못되어 FCB(File Control Bank)를 열 수 없습니다. 파일 위치를 확인하고 DBCC CHECKDB를 실행합니다.

오류가 심각도 22로 발생했으므로 사용자 세션 연결이 끊어집니다. 이 오류 메시지는 EVENTID = 5180을 사용하여 SQL Server 오류 로그 및 Windows 애플리케이션 이벤트 로그에 기록됩니다.

가능한 원인

SQL Server 데이터베이스 엔진은 주로 페이지 ID를 참조할 때(파일 ID가 페이지 ID의 첫 번째 부분이므로) 다양한 상황에서 파일 ID를 참조합니다. 어떤 이유로든 참조되는 파일 ID가 0이거나 < 데이터베이스의 유효한 파일 ID가 아니면(sys.database_files 같은 시스템 카탈로그 뷰에 나열된 유효한 파일 ID에 따라) 5180 오류가 발생할 수 있습니다.

한 가지 가능한 원인은 저장된 파일 ID가 잘못되었다는 것입니다. 행의 전달된 레코드는 다른 페이지를 참조하므로 해당 페이지에 액세스하고 파일 ID가 잘못되면 5180 오류가 발생할 수 있습니다. 이 조건은 전달된 레코드가 있는 페이지의 데이터베이스 손상 오류입니다. 예제에서는 DBCC CHECKDB에서 메시지 8993을 보고합니다.

또 다른 예는 다음 또는 이전 페이지 ID에 대한 페이지 머리글에 저장된 페이지 ID의 일부로 잘못된 파일 ID입니다. 이 필드는 클러스터형 인덱스 등에서 일련의 페이지를 연결하는 데 사용됩니다. 사전 또는 다음 페이지에 대해 파일 ID가 유효하지 않은 경우 엔진이 다음 또는 이전 페이지로 트래버스하기 위해 이를 참조해야 하는 경우 5180 오류가 발생할 수 있습니다. 예제에서는 DBCC CHECKDB에서 메시지 8981을 보고합니다.

손상된 저장된 페이지 ID로 인해 문제가 잘못된 파일 ID가 아니면 SQL Server 데이터베이스 엔진 내에 문제가 있을 수 있습니다.

사용자 작업

이 오류가 발생하면 오류 메시지에 나열된 대로 데이터베이스에 대해 실행 DBCC CHECKDB 해야 합니다. 오류가 발견되면 알려진 정상 백업에서 복원해야 합니다. 백업에서 복원할 수 없는 경우 다른 옵션은 출력에서 권장하는 복구 옵션을 DBCC CHECKDB 사용하는 것입니다. 대부분의 경우 이 유형의 오류를 복구하면 데이터 손실이 발생합니다. 데이터베이스 손상 문제의 사용 및 원인에 대한 자세한 내용은 DBCC CHECKDB에서 보고한 데이터베이스 일관성 오류를 해결하는 방법 문서를 참조하세요.

오류를 보고하지 않고 문제가 계속 발생하는 경우 DBCC CHECKDB Microsoft 기술 지원에 도움을 요청해야 합니다. 5180 오류가 발생하는 쿼리를 제공하도록 준비해야 합니다. 오류가 발생한 쿼리를 확인하는 방법에 대한 자세한 내용은 추가 정보 섹션을 참조하세요.

추가 정보

FCB(파일 제어 블록)는 데이터베이스와 연결된 파일에 대한 중요한 정보를 추적하는 내부 메모리 구조입니다. 파일 ID는 데이터베이스의 FCB를 고유하게 식별하는 데 사용됩니다. 서버 엔진이 잘못된 파일 ID를 참조하려고 하면 5180 오류 조건을 트리거하는 FCB 구조를 찾을 수 없습니다.

이 오류가 발생한 쿼리를 확인하려면 다음 기술을 사용할 수 있습니다.

  • SQL Server 2008 이상 버전의 경우 system_health 세션에 쿼리 텍스트를 포함해야 하는 오류 레코드가 있는지 확인합니다. system_health 세션에 대한 자세한 내용은 리소스를 참조하세요. SQL Server 2008 지원: system_health 세션.
  • SQL Server Profiler를 사용하여 , RPC:Starting및 예외 이벤트를 캡처SQL:BatchStarting합니다. 예외 이벤트와 관련된 세션에서 5180 예외 이벤트 앞에 오는 쿼리를 찾습니다.