Bulk Insert 나 BCP 문을 실행 하려고 하면 SQL Server 어설션 오류: "<loglock.cpp>, 줄 807 실패 어설션 = = ' 결과 LCK_OK = '"</loglock.cpp>

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

현상

다음 시나리오를 고려 하십시오.
  • 서버 A와 서버 B Microsoft SQL Server 2008 또는 2008 R2 SQL Server를 실행 합니다.
  • 서버 A와 서버 B 간에 데이터베이스 미러링을 설정합니다
  • 주 데이터베이스에서 BCP 대량 삽입 하거나 명령문을 실행 합니다.

    참고 기본적으로 CHECK_CONSTRAINTS 옵션은 BULK INSERT 나 BCP 문을 실행 하면 off로 설정 됩니다.
  • 끊어진 된 데이터베이스 미러링 및 데이터베이스 미러링 세션은 SUSPENDED 상태가 됩니다.
이 시나리오에서는 어설션 미러 서버에서 발생합니다. 따라서 미니 덤프 파일의 SQL Server 로그 폴더에 생성 됩니다. 또한 미러 서버에 오류 SQL Server 오류 로그에서 다음 볼:

날짜 시간 spid '의 ' dbghelp.dll '4.0.5' 버전을 사용 하 여
날짜 시간 spid ** 스레드-spid 덤프 = 31, EC = 0x00000007F9B1C1A0
날짜 시간 spid *** 스택 덤프 C:\Program 상자 SQL server\mssql10_50.mssqlserver\mssql\log\sqldump0001.txt에 보내기

날짜 시간 spid * *******************************************************************************

날짜 시간 spid *
날짜 시간 spid * 시작 스택 덤프:
날짜 시간 spid * 01/04/12 16시 46분: 21 spid 12100
날짜 시간 spid *
날짜 시간 spid * 위치: loglock.cpp:807
날짜 시간 spid * 식: 결과 LCK_OK = =
날짜 시간 spid * SPID: 31
날짜 시간 spid * 프로세스 ID: 2228

날짜 시간 spid 오류: 17066, 심각도: 16, 상태: 1.

날짜 시간 spid SQL Server 어설션: 파일: <loglock.cpp>, 줄 807 실패 어설션 = = ' 결과 LCK_OK = '. 이 오류는 타이밍 관련 수 있습니다. 다음 문을 다시 실행 한 후 오류가 계속 발생 하면 데이터베이스의 구조적 무결성을 검사 하려면 DBCC CHECKDB를 사용 하거나 메모리 내 데이터 구조가 손상 되지 않도록 서버를 다시 시작 합니다.

</loglock.cpp>날짜 시간 spid 오류: 3624, 심각도: 20, 상태: 1.

날짜 시간 spid 시스템 어설션을 검사 하지 못했습니다. SQL Server 오류 로그 세부 정보를 확인 하십시오. 일반적으로, 어설션 오류 소프트웨어 버그 또는 데이터 손상으로 인해 발생 합니다. 데이터베이스 손상 여부를 확인 하려면 DBCC CHECKDB를 실행 하는 것이 좋습니다. 미니 덤프 덤프를 설치 하는 동안 Microsoft로 보낼 하기로 하는 경우 Microsoft에 전송 됩니다. 업데이트는 Microsoft 기술 지원부에서 QFE 또는 최신 서비스 팩에서에서 사용할 수 있습니다.

날짜 시간 spid 오류: 1454, 심각도: 16, 상태: 1.

날짜 시간 spid 데이터베이스 미러링을 일시 중단할 수 있습니다. 서버 인스턴스 '<Instance name="">' 오류 3624, 상태 1, 심각도 20 '<database name="">' 데이터베이스 미러링 파트너로 작동 하는 경우 발생 합니다. 데이터베이스 미러링 파트너가 오류 로부터 자동으로 복구 하 고 미러링 세션을 다시 시작 하려고 할 수 있습니다. 자세한 내용은 오류 로그에서 추가 오류 메시지를 봅니다. </database></Instance>


참고 이 문제를 해결 하려면 데이터베이스 미러링을 다시 초기화 해야 합니다.

원인

주 데이터베이스의 트랜잭션 로그에서 잠금 호환성 정보를 미러 서버로 전송 되지 않습니다 때문에이 문제가 발생 합니다.

해결 과정

이 문제를 해결 하려면 CHECK_CONSTRAINTS ON 옵션을 사용 하 여 주 데이터베이스에 대량 삽입 또는 BCP 문을 실행 합니다.

참고 ON CHECK_CONSTRAINTS 옵션 성능이 저하 됩니다. 그러나 미러 서버에서 어설션 잠금 서버 발생 하지 않습니다.

추가 정보

BULK INSERT 나 BCP 작업 중 하위 트랜잭션 CHECK_CONSTRAINTS 옵션 선택을 설정합니다. 이 자식 트랜잭션은 부모 트랜잭션 잠금과 호환 되는 잠금을 사용 합니다. 호환성 정보에는 주 데이터베이스의 트랜잭션 로그에 저장 됩니다. 따라서 자식 트랜잭션 잠금 요청 주 데이터베이스에 부여 됩니다.

그러나이 호환성 정보를 미러 서버로 전송 되지 않습니다. 따라서 자식 트랜잭션 잠금 요청을 미러 서버의 트랜잭션 잠금은 부모와 호환 되지 않습니다. 이 시나리오는 assert 미러 서버에서 발생합니다.

속성

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

피드백 보내기

 

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