2013-10-22 3 views
2

Sitecore 6.6Sitecore 데이터베이스 정리 실패

Sitecore Support 와도 이야기를 나누고 있지만 커뮤니티에도 문의 할 생각입니다.

파일 시스템의 미디어를 미디어 라이브러리와 동기화하는 사용자 정의 에이전트가 있습니다. 새로운 에이전트이고 데이터베이스 크기를 모니터링하지 않는 실수를 범했습니다. 약 8 기가의 데이터를 가져와야하지만 꽤 짧은 시간 안에 데이터베이스가 713GB로 급증했습니다. "master"와 "web"데이터베이스에서 "Blobs"테이블이 거의 모든 공간을 차지합니다.

"데이터베이스 정리"도구를 제어판에서 사용하려고했습니다. 데이터베이스 중 하나만 선택했습니다. SQL Server에서 사용 가능한 모든 잠금을 사용하기 때문에 폭탄이 터지기 전에 6 시간 동안 실행되었습니다.

Exception: System.Data.SqlClient.SqlException 
    Message: The instance of the SQL Server Database Engine cannot obtain a LOCK 
resource at this time. Rerun your statement when there are fewer active users. 
Ask the database administrator to check the lock and memory configuration for 
this instance, or to check for long-running transactions. 

그런 다음 모든 항목이 롤백되었습니다. 참고 : SQL 및 DataProvider 시간 초과를 무한대로 늘 렸습니다.

누구나 다른 사람이 뭔가를 취급합니까? SQL Server를 압도하는 것을 피하기 위해 더 작은 단위로 데이터베이스를 정리할 수 있다면 좋을 것입니다.

감사합니다.

답변

5

감사합니다, 여러분.

가 나는 또한 지원과 이야기하고 그들이 물방울 테이블 청소하는 SQL 스크립트를 제공 할 수 있었다 :

DECLARE @UsableBlobs table(
    ID uniqueidentifier 
    ); 

INSERT INTO 
    @UsableBlobs  
select convert(uniqueidentifier,[Value]) as EmpID from [Fields] 
where [Value] != '' 
and (FieldId='{40E50ED9-BA07-4702-992E-A912738D32DC}' or FieldId='{DBBE7D99-1388-4357-BB34-AD71EDF18ED3}') 
delete top (1000) from [Blobs] 
where [BlobId] not in (select * from @UsableBlobs) 

내가 스크립트로 만든 유일한 변경은 "상단 (1000)"를 추가했다 그래서 그것은 작은 덩어리에서 삭제되었습니다. 나는 결국이 숫자를 200,000으로 올렸으며 한 번에 약 1 시간 동안 실행됩니다.

원인에 대해서는 아직 확실하지 않습니다. 맞춤 에이전트가 너무 자주 실행되어 인서트가 서로 쌓이게됩니다.

또한 Blobs 테이블이 제어 불능 상태에있는 문제를 해결 한 Sitecore 업데이트가있었습니다. 업데이트는 6.6, 업데이트 3입니다.

+0

매력처럼 작동합니다. 고마워, 크레이그. –

0

준비 환경이있는 경우 데이터베이스 복사본을 가져 와서 데이터베이스 축소를 시도하는 것이 좋습니다. 데이터베이스 크기의 일부가 트랜잭션 로그와 관련 될 수도 있습니다.

DBA가있는 경우 관련자를 보내주십시오.

2

이전에 이러한 문제가 발생했으며 Sitecore 지원팀에 문의했습니다.

그들은 우리에게 Sitecore 지원 DLL을주고, dataProvider에 대한 Web.config의 변화 suggessted - ".. Sitecore.Data $ (데이터베이스) $ (데이터베이스) DataProvider를, Sitecore.Kernel"주요 유형 =에서을을에 새로운 것.

내가 당신의 질문에 게시하는 이유는 대부분 Blobs를 청소하기 위해 사용 된 것이기 때문에 Cleanup Blobs 속도를 높이기 위해이 DLL을 우리에게 주었기 때문입니다. 그래서 나는 그것이 당신을 도울 것 같아요.

이 경우 Sitecore 지원을 요청할 수 있다면 최선의 해결책을 얻을 수 있을지를 제안드립니다.

희망이 도움이됩니다.

감사합니다, 응답에 대한 하기 Varun Shringarpure