다음을 통해 공유


SQL Server 업그레이드가 실패하고 오류 6528을 반환합니다.

이 문서는 Microsoft SQL Server 대한 CU(누적 업데이트) 또는 SP(서비스 팩)를 설치할 때 발생하는 오류 6528 문제를 해결하고 해결하는 데 도움이 됩니다. 이 오류는 데이터베이스 업그레이드 스크립트를 실행할 때 발생합니다.

증상

SQL Server CU 또는 SP를 적용하면 설치 프로그램에서 SQL Server 오류 로그에 다음 오류 메시지 중 하나를 보고합니다.

SQL server failed in 'Script level upgrade' with the following error:
Error: 50000, Severity: 16, State: 127.
Cannot drop the assembly 'ISSERVER', because it does not exist or you do not have permission.
Error: 50000, Severity: 16, State: 127.
Cannot drop the assembly 'ISSERVER', because it does not exist or you do not have permission.

Creating function internal.is_valid_name
Error: 6528, Severity: 16, State: 1.
Assembly 'ISSERVER' was not found in the SQL catalog of database 'SSISDB'.

Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'ISServer_upgrade.sql' encountered error 6528, state 1, severity 16. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous error log entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
Error: 3417, Severity: 21, State: 3.
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
SQL Server shutdown has been initiated.

원인

이 문제는 CU를 적용하려는 SQL Server instance 또는 SP에 어셈블리ISSERVER가 없으므로 발생할 수 있습니다.

CU 또는 SP 설치 중에 실행되는 데이터베이스 업그레이드 스크립트에 대한 자세한 내용은 업데이트를 적용할 때 업그레이드 스크립트 오류 문제 해결을 참조하세요.

해결 방법

다음 단계에 따라 문제를 해결합니다.

  1. 추적 플래그 902를 사용하여 SQL Server 시작합니다.

  2. 다음 쿼리를 사용하여 어셈블리 ISSERVER 가 데이터베이스 SSISDB 에 있는지 확인합니다.

    Use SSISDB
    GO
    SELECT * FROM sys.assemblies WHERE name = 'ISSERVER'
    

    또는 SQL Server Management Studio(SSMS>)에서 데이터베이스SSISDB>프로그래밍 가능성>어셈블리>ISSERVER를 확장하여 검사 수 있습니다.

  3. C:\Program Files\Microsoft SQL Server\<VersionNumber>\DTS\Bin 위치를 확인하여 어셈블리 Microsoft.SqlServer.IntegrationServices.Server.dll SQL 이진 폴더에 있는지 확인합니다.

  4. 어셈블리가 해당 폴더에 있지만 sys.assemblies 뷰의 항목으로 누락된 경우 다음 쿼리를 사용하여 다시 만듭니다.

    DECLARE @asm_bin varbinary(max);
    SELECT @asm_bin = BulkColumn
    FROM OPENROWSET (BULK N'C:\Program Files\Microsoft SQL Server\<VersionNumber>\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll',SINGLE_BLOB) AS dll
    CREATE ASSEMBLY ISSERVER FROM  @asm_bin  WITH PERMISSION_SET = UNSAFE
    ALTER DATABASE SSISDB SET TRUSTWORTHY ON
    

    이번에는 어셈블리 ISSERVER 가 있습니다.

  5. 추적 플래그 902를 제거하고 서비스를 시작합니다.