Microsoft SQL Server 2008 R2 수정 프로그램이 하나의 다운로드 가능한 파일로 배포 됩니다. 수정 프로그램이 누적 되므로 새 릴리스에는 이전 SQL Server 2008 R2 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다.
증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
Microsoft SQL Server 2008 R2에 도메인 기반 특성이 있는 MDS (마스터 데이터 서비스) 모델 및 엔터티가 있습니다. 도메인 기반 특성은 동일한 특성을 자기 참조 하도록 디자인 되었습니다. 예를 들어 ManagerName 특성을 가진 직원 엔터티가 있습니다. ManagerName 특성은 동일한 직원 엔터티 자체를 참조 합니다.참고 관리자도 일종의 직원입니다.
-
도메인 기반 특성에 대 한 재귀적 부모/자식 관계를 표시 하기 위해 특성에 정의 된 파생 계층이 있습니다.
-
MDS 준비 테이블에 대 한 순환 참조가 하나 이상 포함 된 데이터 값을 로드 합니다. 이 동작은 순환 참조를 발생 시키고 특성의 첫 번째 노드가 원의 일부가 아닙니다. 예를 들어 다음 데이터 패턴은 순환 참조를 보여 줍니다. 그러나 Member1 member 값은 원의 일부가 아닙니다.
Member1--manager 특성--> Member2-manager 특성--> Member3-manager 특성--> Member2--manager 특성--> Member3
insert into mdm.tblStgMemberAttribute(ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue, Status_ID)Values ('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member3', 0),('EntityTest', 'ModelTest', 1, 'Member3', 'Manager', 'Member2', 0),('EntityTest', 'ModelTest', 1, 'Member2', 'Manager', 'Member1', 0)('EntityTest', 'ModelTest', 1, 'Member1', 'Manager', 'NULL', 0)
-
다음 메서드 중 하나를 사용 하 여 MDS 스테이징 프로세스를 사용 하 여 엔터티에 데이터 값을 로드 합니다.
-
Exec [mdm]을 실행 합니다. [ udpStagingSweep] 절차는 필요한 매개 변수를 사용 하 여 준비 된 데이터를 처리 하는 것입니다.
-
통합 관리 를 클릭 하 여 MDS 웹 사이트 홈 페이지를 방문 합니다. 가져오기 내보내기 페이지의 일괄 처리 되지 않은 준비 레코드 섹션 머리글에서 기어 아이콘 을 클릭 하 여 특정 모델 및 버전에 대 한 레코드를 처리 합니다.
-
이 시나리오에서는 백그라운드 프로세스에서 [mdm]을 내부적으로 호출할 때 준비 프로세스 중 백그라운드 프로세스가 무한 루프를 발생할 수 있습니다 . [ udpMemberRecursiveCircularCheck] 절차를 수행 합니다.
원인
이 문제는 udpStagingSweep 및 udpStagingMemberAttributeSave 프로시저가 각 준비 행에 대해 udpMemberRecursiveCircularCheck 프로시저를 한 번 호출 하기 때문에 발생 합니다. 이 동작은 도메인 기반 특성 값을 확인 하 고 준비 행이 기존 데이터와 순환 참조를 발생 시키는 경우 오류를 반환 합니다. 모든 준비 행을 선택한 후에는 다음과 같은 결과가 나타납니다.
-
오류가 없는 준비 행이 적용 됩니다.
-
오류가 있는 준비 행에 오류 코드가 기록 됩니다.
"현상" 절에 설명 되어 있는 조건이 참이 면 [mdm]. [ udpMemberRecursiveCircularCheck] 프로시저는 서버 리소스가 모두 소모 되거나 시간 초과 될 때까지 무한 루프를 발생 합니다.
해결 방법
누적 업데이트 정보
SQL Server 2008 R2 서비스 팩 1
이 문제에 대 한 픽스는 먼저 누적 업데이트 4에서 릴리스 되었습니다. SQL Server 2008 R2 SP1 용 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2633146 SQL Server 2008 R2 서비스 팩 1 용 누적 업데이트 패키지 4참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2008 R2 SP1 fix 릴리스의 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2567616 SQL Server 2008 R2 서비스 팩 1 이후 릴리스된 SQL Server 2008 R2 빌드가 릴리스 되었습니다.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
해결 방법
이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.
-
이 문제를 방지 하려면 다음 단계를 따르세요.
-
준비 프로세스를 실행 하기 전에 준비 테이블에 삽입 되는 구성원 데이터 값을 수동으로 검토 합니다.
-
모든 도메인 기반 특성의 모든 구성원 값이 "현상" 섹션에 설명 된 순환 참조를 포함 하 고 있지 않은지 확인 합니다.
-
-
"현상" 절에 설명 되어 있는 문제가 발생 하면 다음 단계를 수행 하 여 문제를 해결 합니다.
-
무한 루프에서 실행 중인 세션을 식별 합니다.
-
세션을 중단 하 여 루프를 중지 합니다.
-
순환 참조가 다시 처리 되기 전에 준비 테이블에서 순환 참조 값을 삭제 합니다.
-
참고
-
어떤 세션을 중지 하 고 있는지 확인 하려면 다음 방법 중 하나를 사용 합니다.
-
Microsoft SQL Server Management Studio에서 활동 모니터를 사용 합니다.
-
Sysprocesses 또는 sys.dm_exec_requests DMV (동적 관리 뷰)를 선택 하 여 CPU 및 시간이 빠르게 증가 하는 MDS 데이터베이스 내에서 작동 하는 세션을 식별 합니다. 세션에서 실행 중인 현재 쿼리가 "원인" 섹션에 설명 된 프로시저 이름과 일치 하는지 확인 합니다.
-
-
세션에 대해 현재 실행 중인 프로시저를 확인 하려면 다음 방법 중 하나를 사용 합니다.
-
활동 모니터 프로세스 목록의 각 프로세스에 대 한 세부 정보 메뉴를 마우스 오른쪽 단추로 클릭 합니다.
-
다음 매개 변수 중 하나를 사용 합니다.
-
세션 ID와 함께 사용 되는 DBCC INPUTBUFFER (spid) 명령입니다.
-
DMV 출력을 사용 하는 경우 일치 하는 SQL handle 매개 변수와 함께 SELECT * FROM sys.dm_exec_sql_text (sqlhandle) 함수를 사용할 수 있습니다.
-
-
참조
SQL Server Management Studio에서 활동 모니터를 여는 방법에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하세요.
SQL Server Management Studio에서 활동 모니터를 여는 방법KILL 구문에 대 한 자세한 내용을 보려면 다음 MSDN 웹 사이트를 방문 하세요.
KILL 구문에 대 한 일반 정보Sys.dm_exec_requests DMV에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하세요.
Sys.dm_exec_requests DMV에 대 한 일반 정보Sys.dm_exec_sql_text DMV에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하세요.
Sys.dm_exec_sql_text DMV에 대 한 일반 정보DBCC INPUTBUFFER 명령에 대 한 자세한 내용을 보려면 다음 MSDN 웹 사이트를 방문 하세요.
DBCC INPUTBUFFER 명령에 대 한 일반 정보SQL Server에 대 한 증분 서비스 모델에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
935897 보고 된 문제에 대 한 핫픽스를 제공 하기 위해 SQL Server 팀에서 증분 서비스 모델을 사용할 수 있음SQL Server 업데이트의 명명 스키마에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
822499 Microsoft SQL Server 소프트웨어 업데이트 패키지에 대 한 새 이름 지정 스키마소프트웨어 업데이트 용어에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
824684 Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명