전체 기간 동안 트랜잭션을 보류하는 장기 실행 프로세스가 있습니다.
나는 이것이 실행되는 방식을 통제 할 수 없습니다.
트랜잭션은 전체 기간 동안 열려 있기 때문에 트랜잭션 로그가 가득 차면 SQL Server에서 로그 파일의 크기를 늘릴 수 없습니다.
따라서 프로세스가 오류와 함께 실패합니다 "The transaction log for database 'xxx' is full"
.
데이터베이스 속성에서 트랜잭션 로그 파일의 크기를 늘려이를 방지하려고 시도했지만 동일한 오류가 발생합니다.
다음에 무엇을 시도해야할지 모르겠습니다. 프로세스는 몇 시간 동안 실행되므로 시행 착오를하기가 쉽지 않습니다.
어떤 아이디어?
관심있는 사람이 있다면 프로세스는 Microsoft Dynamics CRM 4.0.
충분한 디스크 공간이 있으며 로그가 단순 로깅 모드로되어 있으며 프로세스를 시작하기 전에 로그를 백업했습니다.
-=-=-=-=-업데이트-=-=-=-=-
지금까지 의견을 보내 주셔서 감사합니다. 다음은 열린 트랜잭션으로 인해 로그가 커지지 않을 것이라고 믿게 만든 이유입니다.
다음과 같은 오류가 발생합니다.
Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception:
System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
그래서 그 조언에 따라 " log_reuse_wait_desc column in sys.databases
"로 갔고 " "의 가치를 유지했습니다 ACTIVE_TRANSACTION
.
Microsoft에 따르면 : http://msdn.microsoft.com/en-us/library/ms345414(v=sql.105).aspx
이는 다음을 의미합니다.
트랜잭션이 활성 상태입니다 (모든 복구 모델). • 로그 백업을 시작할 때 장기 실행 트랜잭션이있을 수 있습니다. 이 경우 공간을 확보하려면 다른 로그 백업이 필요할 수 있습니다. 자세한 내용은이 항목 뒷부분의 "장기 실행 활성 트랜잭션"을 참조하십시오.
• 트랜잭션이 지연됩니다 (SQL Server 2005 Enterprise Edition 이상 버전 만 해당). 지연된 트랜잭션은 사용할 수없는 리소스로 인해 롤백이 차단 된 활성 트랜잭션입니다. 지연된 트랜잭션의 원인과이를 지연된 상태에서 제거하는 방법에 대한 자세한 내용은 지연된 트랜잭션을 참조하십시오.
내가 뭔가를 오해 했나요?
-=-=-=-업데이트 2-=-=-=-
초기 로그 파일 크기를 30GB로 설정하여 프로세스를 시작했습니다. 완료하는 데 몇 시간이 걸립니다.
-=-=-=-최종 업데이트-=-=-=-
이 문제는 실제로 사용 가능한 모든 디스크 공간을 사용하는 로그 파일로 인해 발생했습니다. 마지막 시도에서 120GB를 확보했지만 여전히 모든 것을 사용했고 결국 실패했습니다.
프로세스가 하룻밤 사이에 실행될 때 실패시 롤백 되었기 때문에 이전에 이런 일이 발생한다는 것을 몰랐습니다. 이번에는 롤백 전에 로그 파일 크기를 확인할 수있었습니다.
귀하의 의견에 감사드립니다.