Freigeben über


Sql Server-Upgrade schlägt fehl und gibt Fehler 15151 zurück.

Dieser Artikel hilft Ihnen bei der Problembehandlung von Fehler 15151, der auftritt, wenn Sie ein kumulatives Update (CU) oder Service Pack (SP) für Microsoft SQL Server installieren. Der Fehler tritt auf, wenn Datenbankupgradeskripts ausgeführt werden.

Problembeschreibung

Wenn Sie ein CU oder SP anwenden, gibt das Setupprogramm die folgende Fehlermeldung zurück:

Fehler beim Warten auf das Wiederherstellungshandle der Datenbank-Engine. Mögliche Ursachen finden Sie im SQL Server-Fehlerprotokoll.

Darüber hinaus kann der folgende Fehlereintrag im SQL Server-Fehlerprotokoll protokolliert werden:

Error: 15151, Severity: 16, State: 1.
Cannot find the login '##MS_SSISServerCleanupJobLogin##', because it does not exist or you do not have permission.

Ursache

Dieses Problem tritt auf, da entweder die Anmeldung (Serverprinzipal) manuell gelöscht wurde oder diese Anweisungen nicht befolgt werden.

Weitere Informationen zu Datenbankupgradeskripts, die während der CU- oder SP-Installation ausgeführt werden, finden Sie unter Problembehandlung bei Upgradeskriptfehlern beim Anwenden eines Updates.

Lösung

Gehen Sie folgendermaßen vor, um das Problem zu beheben:

  1. Starten Sie SQL Server mit Ablaufverfolgungskennzeichnung 902.

  2. Erstellen Sie die Anmeldung auf dem Server erneut:

    CREATE LOGIN [##MS_SSISServerCleanupJobLogin##]
    WITH PASSWORD = N'<password>',
    DEFAULT_DATABASE = [master],
    DEFAULT_LANGUAGE = [us_english],
    CHECK_EXPIRATION = OFF,
    CHECK_POLICY = OFF;
    
  3. Wechseln Sie zur SSISDB Datenbank, und ordnen Sie den vorhandenen Benutzer der neu erstellten Anmeldung zu:

    USE SSISDB
    GO
    ALTER USER [##MS_SSISServerCleanupJobUser##] WITH LOGIN =[##MS_SSISServerCleanupJobLogin##]
    
  4. In einigen Fällen fehlen möglicherweise auch die Datenbankbenutzerinformationen. Erstellen Sie in diesem Fall den Benutzer in der SSISDB Datenbank erneut, und führen Sie dann den vorherigen Schritt erneut aus, um dem Benutzer die Anmeldung zuzuordnen:

    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