Aracılığıyla paylaş


SQL Server yükseltmesi başarısız oldu ve hata 15151'i döndürdü

Bu makale, Microsoft SQL Server için toplu güncelleştirme (CU) veya hizmet paketi (SP) yüklediğinizde oluşan 15151 hatasını gidermenize yardımcı olur. Veritabanı yükseltme betikleri çalıştırıldığında hata oluşur.

Belirtiler

CU veya SP uyguladığınızda Kurulum programı aşağıdaki hata iletisini döndürür:

Veritabanı Altyapısı kurtarma tanıtıcısında bekleme başarısız oldu. Olası nedenler için SQL Server hata günlüğüne bakın.

Ayrıca, SQL Server hata günlüğüne aşağıdaki hata girişi kaydedilebilir:

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

Neden

Bu sorun, oturum açma (sunucu sorumlusu) el ile bırakıldığı veya bu yönergelere uyulmadığı için oluşur.

CU veya SP yüklemesi sırasında çalışan veritabanı yükseltme betikleri hakkında daha fazla bilgi için bkz . Güncelleştirme uygularken yükseltme betiği hatalarını giderme.

Çözüm

Sorunu çözmek için şu adımları izleyin:

  1. İzleme bayrağı 902 ile SQL Server'ı başlatın.

  2. Sunucuda oturum açmayı yeniden oluşturun:

    CREATE LOGIN [##MS_SSISServerCleanupJobLogin##]
    WITH PASSWORD = N'<password>',
    DEFAULT_DATABASE = [master],
    DEFAULT_LANGUAGE = [us_english],
    CHECK_EXPIRATION = OFF,
    CHECK_POLICY = OFF;
    
  3. SSISDB Veritabanına geçin ve mevcut kullanıcıyı yeni oluşturulan oturum açma bilgileriyle eşleyin:

    USE SSISDB
    GO
    ALTER USER [##MS_SSISServerCleanupJobUser##] WITH LOGIN =[##MS_SSISServerCleanupJobLogin##]
    
  4. Bazı durumlarda veritabanı kullanıcı bilgileri de eksik olabilir. Bu durumda, veritabanında kullanıcıyı SSISDB yeniden oluşturun ve kullanıcıyı oturum açma bilgileriyle eşlemek için önceki adımı yeniden çalıştırın:

    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