Aracılığıyla paylaş


Sertifika tabanlı sorumlular kullanıcı nesnelerine sahipse SQL Server yükseltmesi başarısız oluyor

Bu makale, veritabanı yükseltme betiklerini çalıştırdığınızda SQL Server için toplu güncelleştirmenin (CU) veya hizmet paketinin (SP) 574 hatasını bildirmesi sorununu gidermenize yardımcı olur.

Belirtiler

SQL Server için 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 girdileri 912 ve 3417 hatalarıyla birlikte kaydedilebilir:

  • 15136 The database principal is set as the execution context of one or more procedures, functions, or event notifications and cannot be dropped.
  • 15138 The database principal owns a %S_MSG in the database, and cannot be dropped.
  • 15141 The server principal owns one or more %S_MSG(s) and cannot be dropped.
  • 15154 The database principal owns an %S_MSG and cannot be dropped.
  • 15155 The server principal owns a %S_MSG and cannot be dropped.
  • 15183 The database principal owns objects in the database and cannot be dropped.
  • 15184 The database principal owns data types in the database and cannot be dropped.
  • 15186 The server principal is set as the execution context of a trigger or event notification and cannot be dropped.
  • 15284 The database principal has granted or denied permissions to objects in the database and cannot be dropped.
  • 15421 The database principal owns a database role and cannot be dropped.
  • 27226 The database principal has granted or denied permissions to catalog objects in the database and cannot be dropped.
  • 33015 The database principal is referenced by a %S_MSG in the database, and cannot be dropped.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'SSIS_hotfix_install.sql' encountered error 945, state 2, severity 25. 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 errorlog 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

Neden

SQL Server yüklendiğinde, çift karma işaretleri (##) içine alınmış sunucu sorumluları sertifikalardan oluşturulur. Bu sorumlular, sistem tarafından oluşturulan sorumlular olarak ele alınmalıdır. Bunlar veya diğer veritabanlarındaki msdb kullanıcı nesnelerinin sahibi olan veritabanı sorumlularıyla eşlenmemelidir. Bu varsayılan yapılandırmada yapılan tüm değişiklikler, SQL Server'ı yükseltmeye çalıştığınızda hatalara neden olabilir. Bunun nedeni, yükseltme betiklerinin bu nesnelerin yalnızca SQL Server tarafından oluşturulan bağımlılıklara sahip olduğunu varsaymış olmasıdır.

Çözüm

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

  2. Sunucu sorumlularının veritabanı sorumlularıyla eşlemesini belirlemek için aşağıdaki komutu çalıştırın:

    EXEC master.sys.sp_helplogins 
    
  3. Etkilenen nesnelerin sahipliğini farklı bir kullanıcıyla değiştirin.

  4. Yükseltme betiğinin çalışmasının bitebilmesi için izleme bayrağı 902 olmadan SQL Server'ın yeniden başlatılması.

Not

Yükseltme betiklerinin çalıştırılamaması "Veritabanı Altyapısı kurtarma tutamacını bekleme başarısız oldu" hatasının yaygın nedenlerinden biri olsa da, bu sorun başka nedenlerle de oluşabilir. Hata, güncelleştirme yükleyicisinin hizmeti başlatamadığı veya güncelleştirme yüklendikten sonra çevrimiçi duruma getiremediği anlamına gelir. Her iki durumda da sorun giderme, hatanın nedenini belirlemek ve uygun eylemi yapmak için hata günlüklerinin ve Kurulum günlüklerinin gözden geçirilmesini içerir.

Ayrıca bkz.

Güncelleştirme uygulanırken yükseltme betiği hatalarını giderme