SQL Server 업그레이드가 실패하고 오류 15151을 반환합니다.
이 문서는 Microsoft SQL Server 대한 CU(누적 업데이트) 또는 SP(서비스 팩)를 설치할 때 발생하는 오류 15151 문제를 해결하는 데 도움이 됩니다. 이 오류는 데이터베이스 업그레이드 스크립트를 실행할 때 발생합니다.
증상
CU 또는 SP를 적용하면 설치 프로그램에서 다음 오류 메시지를 반환합니다.
데이터베이스 엔진 복구 핸들을 기다리지 못했습니다. SQL Server 오류 로그에서 잠재적인 원인을 확인합니다.
또한 다음 오류 항목이 SQL Server 오류 로그에 기록될 수 있습니다.
Error: 15151, Severity: 16, State: 1.
Cannot find the login '##MS_SSISServerCleanupJobLogin##', because it does not exist or you do not have permission.
원인
이 문제는 로그인(서버 주체)이 수동으로 삭제되었거나 이러한 지침이 따르지 않기 때문에 발생합니다.
CU 또는 SP 설치 중에 실행되는 데이터베이스 업그레이드 스크립트에 대한 자세한 내용은 업데이트를 적용할 때 업그레이드 스크립트 오류 문제 해결을 참조하세요.
해결 방법
이 문제를 해결하려면 다음 단계를 따릅니다.
추적 플래그 902를 사용하여 SQL Server 시작합니다.
서버에서 로그인을 다시 만듭니다.
CREATE LOGIN [##MS_SSISServerCleanupJobLogin##] WITH PASSWORD = N'<password>', DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english], CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF;
데이터베이스로
SSISDB
전환하고 기존 사용자를 새로 만든 로그인에 매핑합니다.USE SSISDB GO ALTER USER [##MS_SSISServerCleanupJobUser##] WITH LOGIN =[##MS_SSISServerCleanupJobLogin##]
경우에 따라 데이터베이스 사용자 정보도 누락될 수 있습니다. 이 경우 데이터베이스에서
SSISDB
사용자를 다시 만든 다음 이전 단계를 다시 실행하여 사용자를 로그인에 매핑합니다.USE [SSISDB] GO DROP USER [##MS_SSISServerCleanupJobUser##] GO CREATE USER [##MS_SSISServerCleanupJobUser##] FOR LOGIN [##MS_SSISServerCleanupJobLogin##] GO ALTER USER [##MS_SSISServerCleanupJobUser##] WITH DEFAULT_SCHEMA=[dbo] GO GRANT EXECUTE ON [internal].[cleanup_server_project_version] TO [##MS_SSISServerCleanupJobUser##] GO GRANT EXECUTE ON [internal].[cleanup_server_retention_window] TO [##MS_SSISServerCleanupJobUser##] GO