Microsoft SQL Server 2012 수정 프로그램을 하나의 다운로드 가능한 파일로 배포 합니다. 수정 프로그램이 누적 되므로 새 릴리스에는 이전 SQL Server 2012 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다.
증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
Microsoft SQL Server 2012의 데이터 품질 클라이언트에서 하나 이상의 데이터 품질 프로젝트를 만듭니다.
-
SQL Server 2012 (SQL Server 2012 CU1)에 대 한 누적 업데이트 1을 설치한 다음 DQSInstaller 파일을 실행 하 여 DQS (Data Quality Services) 카탈로그를 업그레이드 하 고 새 개체를 추가 합니다.
-
데이터 품질 클라이언트를 사용 하 여 생성 된 데이터 품질 프로젝트 중 하나를 삭제 하려고 합니다.
이 시나리오에서는 데이터 품질 클라이언트가 응답을 중지 하 고 SQL Server 데이터베이스 엔진이 무한 루프에 들어갑니다. 또한 sqlservr.exe 프로세스는 높은 CPU 사용량을 경험 합니다. 참고
-
이 문제를 복구 하려면 데이터 품질 클라이언트 및 DQS를 다시 시작 합니다.
-
이 문제는 SQL Server 2012 CU1를 설치 하기 전에 데이터 품질 프로젝트를 만든 경우에만 발생 합니다.
원인
이 문제는 루프 카운터를 잘못 업데이트 하 여 발생 하는 시스템 저장 프로시저의 무한 루프 때문에 발생 합니다.참고이 문제는 SQL Server 2012 CU1의 재발 때문에 발생 합니다.
해결 방법
누적 업데이트 정보
SQL Server 2012에 대 한 서비스 팩 정보
이 문제를 해결 하려면 SQL Server 2012의 최신 서비스 팩을 구하십시오. 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2755533 SQL Server 2012의 최신 서비스 팩을 구하는 방법
SQL Server 2012
이 문제에 대 한 픽스는 SQL Server 2012의 누적 업데이트 2에서 처음 릴리스 되었습니다. 이 SQL Server 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2703275 SQL Server 2012의 누적 업데이트 패키지 2참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2692828 SQL Server 2012이 출시 된 이후 출시 된 SQL Server 2012 빌드
해결 방법
이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.방법 1:저장 프로시저 무한 루프를 계속 하 고 올바르게 종료할 수 있는 더미 프로시저를 추가 하려면 다음 단계를 따르세요.
-
다음 쿼리를 실행 하 여 삭제 하려는 영향을 받는 프로젝트에 대 한 스키마 이름을 식별 합니다.
SELECT 'KnowledgeManagement'+CAST(ID AS NVARCHAR) AS SchemaName, Name FROM DQS_MAIN.dbo.A_KNOWLEDGEBASE WHERE TYPE=2
-
반환 되는 SchemaName 값을 사용 하 고 SQL Server Management Studio에서 다음과 유사한 문을 실행 하 여 일치 하는 스키마 이름과 데이터 품질 프로젝트 ID를 제공 합니다. 스키마 및 해당 하는 데이터 품질 프로젝트에 대 한 새 더미 프로시저가 생성 됩니다. 따라서 무한 루프가 올바르게 진행 됩니다.
USE DQS_PROJECTSGOCREATE PROCEDURE DQProject<ID>.NewIndexParseTrigramsFromLexiconAS BEGINPRINT 'THIS IS A DUMMY PROCEDURE TO MAKE DELETE WORK for Microsoft KB Article 2705571';END
참고 <ID>는 삭제 되는 데이터 품질 프로젝트의 내부 ID를 나타냅니다.
-
데이터 품질 프로젝트가 예상 대로 데이터 품질 클라이언트에서 삭제 되었는지 확인 합니다.
방법 2CPU 리소스를 절약 하기 위해 루핑 프로시저를 빠르게 중단 해야 하는 경우 다음 문을 실행 하 여 올바른 세션을 식별 합니다. 그러나 반복 프로시저를 종료 해도 데이터 품질 프로젝트는 깨끗 하 게 삭제 되지 않습니다. 다음 Transact-sql 문은 올바른 세션을 식별 하 고 중지 하는 데 도움이 됩니다. 데이터 품질 클라이언트의 세션이 두 개 이상 실행 되는 경우 문을 여러 번 실행 해야 할 수 있습니다.
DECLARE @session smallint, @text nvarchar(2000), @killcommand nvarchar(200)SELECT TOP 1 @session=s.session_id, @text=st.textFROM sys.dm_exec_sessions sFULL OUTER JOIN sys.dm_exec_requests r ON s.session_id=r.session_idCROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS stWHERE program_name like 'DQ Services Client: Client Id = %, KB Id = %, Proxy = KnowledgebaseManagementEntryPointClient'AND s.status='running';SELECT 'Killing this DQS session:', @session SessionID, @text QueryText;SET @killcommand=N'Kill '+ cast(@session as nvarchar)+';'EXEC sp_executesql @killcommand;
참고 방법 2를 사용 하 여 DQS 연결을 중단 하면 데이터 품질 클라이언트에서 다음과 같은 오류 메시지가 나타날 수 있습니다.
SQL Server Data Quality Services--------------------------------------------------------------------------------<MessageId>: ApplicationUnhandledExceptionAn 처리 되지 않은 예외가 발생 했습니다. 자세한 내용은 Data Quality Services 클라이언트 로그를 참조 하세요--------------------------------------------------------------------------------. SqlException (0x80131904): 현재 명령에 심각한 오류가 발생 했습니다. 결과가 있으면 삭제 해야 합니다.
상태
Microsoft는 이 문제가 "적용 대상" 절에 나열된 Microsoft 제품에서 발생하는 문제로 확인했습니다.
참조
DQS를 업그레이드 하는 방법에 대 한 자세한 내용은 다음 Microsoft TechNet 웹 사이트를 참조 하세요.