시스템 기본 정보
OS : Windows 2008 64bit R2 Ent
SQL Server : SQL2008 R2 Ent 10.50.4000.0
Processor : Intel Xeon X5675 3.07Hz (24Core)
Memory : 36G (SQL Max Memory 16G)
서버 용도
전세계 3대륙 8개국가 5개의 DB를 27개의 게시자로 37개의 서버에 총 105개의 구독자를 만들어
분산 전용 서버와 IIS 서버(서비스가 아닌 관리용 리포트 웹)으로 사용
증상
1. SSMS 및 Replication Monitor 에서 스냅샷 생성이 안됨
단 . 수동 실행 하면 생성은 됨
c:\Program Files\Microsoft SQL Server\100\COM 에서 snapshot -publication %publication name% -publisher.....
Replication 정상 동작 확인을 위한 스냅샷 생성시 Output 파일로 Log 도 정상적으로 남지 않음
Replication Monitor 를 통해 확인해보면 Agents 에 아래와 같은 오류 발생
Error Message
The replication agent encountered a failure. See the previous job step history message or Replication Monitor for more information. The step failed.
2. 구독자 Error
Error Message
Agent '' is retrying after an error. X retries attempted. See agent job history in the Jobs folder for more details.
해결 방법
기본값으로 설정되어 있는 Desktop Heap에 할당된 메모리가 부족해서 발생한 문제 입니다.
이시스템은 메모리가 충분함에도 불구하고 발생한 이유는 윈도우가 물리적 메모리중 일부를 사용자 인터페이스를 위한 시스템 Desktop Heap 에 할당 되어 있는데 실행중인 Replication Agent 도 많코 시스템의 Replication Monitor 에서 많은 구독자와 연결이 되어 있어 기본값보다 더 많은 Desktop Heap 이 필요 하게 되어 발생 한 것으로 보인다고 하네요^^
Desktop Heap 메모리 관련하게 레지스트리 값 수정을 통해 변경 할 수 있다.
“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems”
“SharedSection=1024,20480,768” 를 “SharedSection=1024,20480,1792” 로 바꾼다. (16의 배수로 바꾸라고 하네요.. 자세한건 저도 잘 몰라요.^^)
하지만 이건 이 시스템에 맞는 설정을 한것이고 윈도우 시스템에서 사용 할 수 있는 양을 고려 하여 기존 값보다 약간의 높은 수치로 변경해 보고 아무 문제가 없으면 조금 더 높은 수치로 변경해 보는 방식으로 변경 해 보는것을 권장 한다.
위 사항은 미국 MS 에서 해결해준 사항을 바탕으로 작성 되었습니다.
라이고님이 정리 해주신 Desktop Heap Monitor Tool 을 통해 모니터링 해보고 적용 하면 좋은듯 싶네요.
http://laigo.kr/276