MSSQLSERVER_3859
적용 대상: SQL Server
세부 정보
attribute | 값 |
---|---|
제품 이름 | SQL Server |
이벤트 ID | 3859 |
이벤트 원본 | MSSQLSERVER |
구성 요소 | SQLEngine |
심볼 이름 | DBCC_CHECKCAT_DIRECT_UPDATE |
메시지 텍스트 | 경고: 시스템 카탈로그가 데이터베이스 ID %d에서 직접 업데이트되었으며, 가장 최근에 %S_DATE |
설명
이 오류는 사용자가 시스템 테이블을 변경하기 시작했음을 나타냅니다. 시스템 테이블을 수동으로 업데이트할 수는 없습니다. 시스템 테이블은 SQL Server 데이터베이스 엔진에서만 업데이트해야 합니다. SQL Server가 시스템 테이블에 대한 사용자 시작 변경 내용을 감지하면 다음 두 가지 시나리오에서 오류 3859가 발생합니다.
시나리오 1
다음과 유사한 이벤트는 수동으로 업데이트된 시스템 테이블이 포함된 SQL Server 데이터베이스를 시작할 때 이벤트 뷰어 SQL Server 오류 로그 또는 애플리케이션 로그에 기록됩니다.
로그 이름: 애플리케이션
원본: MSSQLSERVER 이벤트 ID: 3859
태스크 범주: 서버
수준: 정보
설명: 경고: 시스템 카탈로그가 데이터베이스 ID %d에서 직접 업데이트되었으며 가장 최근에 date_time시나리오 2
시스템 테이블이 수동으로 업데이트된
DBCC_CHECKDB
후 명령을 실행할 때 다음 경고 메시지가 반환됩니다.'database_name'에 대한 DBCC 결과입니다.
Msg 8992, Level 16, State 1, Line 1
카탈로그 Msg 3859, 상태 1: 경고: 시스템 카탈로그가 데이터베이스 ID %d에서 직접 업데이트되었으며, 가장 최근에 date_time.
CHECKDB가 ‘db_name’ 데이터베이스에서 할당 오류 0개와 일관성 오류 0개를 찾았습니다.
DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.
사용자 작업
이 문제를 해결하려면 다음 방법 중 하나를 사용합니다.
방법 1
데이터베이스의 새 백업이 있는 경우 백업에서 데이터베이스를 복원합니다.
참고 항목
이 메서드는 백업에 메타데이터의 불일치가 없는 경우에만 작동합니다.
방법 2
백업에서 데이터베이스를 복원할 수 없는 경우 데이터와 개체를 새 데이터베이스로 내보냅니다. 그런 다음 수동으로 업데이트된 데이터베이스의 내용을 새 데이터베이스로 전송합니다. 참고 DBCC CHECKDB 명령의 REPAIR 옵션을 사용하여 시스템 카탈로그의 불일치를 복구할 수 없습니다. 따라서 이 명령은 메타데이터 손상을 복구할 수 없기 때문에 권장 복구 수준을 제공하지 않습니다.
참고 항목
시스템 카탈로그 뷰를 통해 시스템 테이블의 데이터를 볼 수 있습니다.
자세한 정보
자세한 내용은 다음을 참조 하세요. 시스템 기본 테이블.