"Msg 8992" 오류 메시지가 나타난다 및 SQL Server 시스템 카탈로그에서 일관성 없는 메타 데이터

기술 자료 번역 기술 자료 번역
기술 자료: 2787112 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

Microsoft SQL Server 다음 문제 중 하나가 발생할.

문제 1

SQL Server 데이터베이스의 시스템 테이블을 수동으로 업데이트 하는 경우는 시스템 메타 데이터에 일관성이 없는 만드는 것으로 가정 합니다. 시스템 메타 데이터 테이블에 있는 불일치를 확인 하기 위해 DBCC CHECKDB 명령을 실행 하려고. 이 상황에서는 다음과 같은 오류 메시지가 반환 됩니다.
8992 메시지, 수준 16, 상태 1, 줄 1
카탈로그 Msg 3853, 1 상태 확인: 특성 (referenced_object_id =개체 ID>, key_index_id =인덱스 ID입니다.>)의 행 (object_id =개체 ID>) sys.foreign_keys에 일치 하는 행이 없는 (object_id =개체 ID>, index_id =인덱스 ID입니다.>) sys.indexes에.

문제 2

SQL server에서 시스템 테이블을 업데이트할 때 다음과 유사한 경고 메시지가 나타납니다.
경고: 시스템 테이블 ID입니다.테이블 ID입니다.> 직접 데이터베이스 ID가 업데이트 되었습니다데이터베이스 ID입니다.> 및 캐시 일관성 수 있습니다 되었습니다 유지 합니다. SQL Server 다시 시작 해야 합니다.
이 경우 DBCC CHECKDB 또는 DBCC CHECKCATALOG 명령을 실행 하는 경우 경고 메시지가 시스템 카탈로그를 마지막으로 변경 된 시간 및 날짜와 함께 반환 됩니다. 또한 다음과 같은 경고 메시지가 SQL Server 로그에도 기록 됩니다.
경고: 시스템 카탈로그가 데이터베이스 ID에서 직접 업데이트 되었습니다.데이터베이스 ID입니다.>, 최근에로그 시간>.
참고 이 데이터베이스 헤더에 저장 된 정보와 데이터베이스의 수명 동안 유지.

원인

SQL Server 시스템 테이블을 수동 업데이트를 지원 하지 않기 때문에이 문제가 발생 합니다. 시스템 테이블은 SQL Server 데이터베이스 엔진에서 업데이트 되어야 합니다.

참고 시스템 카탈로그 뷰를 사용 하 여 시스템 테이블의 데이터를 볼 수 있습니다.

해결 방법

이 문제를 해결 하려면 다음 방법 중 하나를 사용 합니다.

방법 1

데이터베이스 정리 백업 하는 경우 백업에서 데이터베이스를 복원 합니다.

참고 만 백업 불일치 메타 데이터에 없는 경우이 메서드를 작동 합니다.

방법 2

데이터베이스를 백업에서 복원할 수 없는 경우 데이터 및 개체를 새 데이터베이스로 내보냅니다. 그런 다음 수동으로 업데이트할 데이터베이스의 내용을 새 데이터베이스에 전송 합니다. 참고DBCC CHECKDB 명령을 복구 옵션을 사용 하 여 시스템 카탈로그의 일관성 오류를 복구할 수 없습니다. 따라서 명령은 메타 데이터 손상을 복구할 수 없습니다 때문에 명령 권장된 복구 수준을 제공 하지 않습니다.

추가 정보

시스템 카탈로그에 적용 된 수정 사항을 감지 하는 시스템 센터 관리자 규칙에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
2688307 SQL Server 데이터베이스의 시스템 테이블을 업데이트할 때 17659 이벤트 ID 및 이벤트 ID 3859 기록 됩니다.
다음 표는 시스템 카탈로그의 불일치를 나타내는 오류입니다. 일반적으로 다음과 같은 오류와 함께 "8992" 오류 코드가 생성 됩니다.
표 축소표 확대
오류메시지 텍스트
3851시스템 테이블 sys.%ls%ls에서 찾을 수 있는 잘못 된 행 (%1!)
3852행 (%1!)에서 sys.%ls%ls sys.%ls%ls에 일치 하는 행 (%1!) 없습니다.
3853특성 (%1!) 행 (%1!)에서 sys.%ls%ls의 sys.%ls%ls에 일치 하는 행 (%1!) 없습니다.
3854특성 (%1!)에서 sys.%ls%ls 행 (%ls)의 일치 하는 행 (%1!) 잘못 된 sys.%ls%ls에 있습니다.
3855특성 (%1!)에서 sys.%ls%ls (%1!) 행 하지 않고 있습니다.
3856특성 (%1!) 존재 하지만 행 (%1!)에서 sys.%ls%ls에 대 한 합니다.
3857특성 (%1!)이 필요 하지만 행 (%1!) sys.%ls%ls에 대 한 없습니다.
3858Sys.%ls%ls 행 (%ls)의 특성 (%1!) 잘못 된 값을 있습니다.
3859경고: 시스템 카탈로그가 S_DATE %에서 최근 데이터베이스 ID %d 직접 업데이트 되었습니다.
다음은 이러한 문제가 발생할 때 나타날 수 있는 오류 메시지의 예입니다.
서버: 메시지 2513, 수준 16, 상태 1, 줄 1
테이블 오류: 개체 ID개체 ID> (개체 '개체 ID> ') 'SYSOBJECTS' 및 'SYSCOLUMNS' 사이의 일치 하지 않습니다.

3853 메시지, 수준 16, 상태 1, 줄 2
특성 (object_id =개체 ID>)의 행 (object_id =개체 ID>, index_id =인덱스 ID입니다.>) sys.indexes에 일치 하는 행이 없는 (object_id =개체 ID>) sys.objects에서.

3855 메시지, 수준 16, 상태 1, 줄 2
특성 (data_space_id = 1) 행 하지 않고 있는 (object_id =개체 ID>, index_id =인덱스 ID입니다.>) sys.indexes에.

3852 메시지, 수준 16, 상태 1, 줄 1
행 (object_id =개체 ID>, index_id = 1) sys.indexes에 (형식 = U) 일치 하는 행이 없는 (클래스 objid 0 = =개체 ID>, indexid =인덱스 ID입니다.>, rowsetnum = 1)에서 sys.sysrowsetrefs.

3852 메시지, 수준 16, 상태 1, 줄 1
행 (object_id =개체 ID>, index_id = 1) sys.indexes에 (형식 = U) 일치 하는 행이 없는 (클래스 objid 0 = =개체 ID>, indexid =인덱스 ID입니다.>, rowsetnum = 1)에서 sys.sysrowsetrefs.

3853 메시지, 수준 16, 상태 1, 줄 1
특성 (default_object_id개체 ID= >)의 행 (object_id =개체 ID>, column_id =열 ID입니다.>) sys.columns에 일치 하는 행이 없는 (object_id =개체 ID>) sys.objects에서.

8992 메시지, 수준 16, 상태 1, 줄 1
카탈로그 Msg 3853, 1 상태 확인: 특성 (object_id =개체 ID>)의 행 (object_id =개체 ID>, column_id =열 ID입니다.>) sys.columns에 일치 하는 행이 없는 (object_id =개체 ID>) sys.objects에서.

DBCC 실행이 완료 되었습니다. DBCC 오류 메시지를 출력 하면 시스템 관리자에 게를 문의 하십시오.
또한 나타날 수 있는 " CHECKDB 명령을 실행 하 여 데이터베이스의 일관성을 검사 하는 경우 다음과 유사한 메시지 211" 오류 메시지.
메시지 211, 23, 230, 상태 1 수준
가능한 스키마 손상 되었습니다. DBCC CHECKCATALOG를 실행 합니다.

메시지 0, 수준 20, 상태 0, 줄 0
현재 명령에는 심각한 오류가 있습니다. 결과, 있는 경우 삭제 해야
또한이 오류 메시지는 시스템 카탈로그의 일관성 없는 메타 데이터를 포함할 나타냅니다.

참고CHECKDB 명령을 실행 하 여 SQL Server 2000에서 업그레이드 된 데이터베이스의 일관성을 검사 하는 경우 명령을 시스템 카탈로그에서 코드 및 보고서의 불일치 "8992" 오류가 반환할 수 있습니다. SQL Server 2000에서 DBCC CHECKDB 명령을 DBCC CHECKCATALOG 명령의 기능을 포함 하지 않으므로이 문제가 발생 합니다. DBCC CHECKCATALOG 명령을 실행 하지 않으면 따라서 하면 이러한 문제 SQL Server 2000에서 탐지할 수 없습니다.

DBCC CHECKDB 명령을 사용 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 참조 하십시오.
DBCC CHECKDB 명령에 대 한 일반 정보

참조

수동으로 SQL Server 시스템 테이블을 업데이트할 때 발생할 수 있는 문제에 대 한 자세한 내용은 Microsoft 기술 자료에서 문서 번호를 클릭 합니다.

2688307 SQL Server 데이터베이스의 시스템 테이블을 업데이트할 때 17659 이벤트 ID 및 이벤트 ID 3859 기록 됩니다.


속성

기술 자료: 2787112 - 마지막 검토: 2013년 2월 4일 월요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
키워드:?
kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2787112 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:2787112

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com