Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule rozwiązano problem polegający na tym, że aktualizacja zbiorcza (CU) lub dodatek Service Pack (SP) zgłasza błąd 2714 podczas uruchamiania skryptów uaktualniania bazy danych.
Symptomy
Po zastosowaniu aktualizacji CU lub SP program instalacyjny może zgłosić następujący błąd:
Oczekiwanie na dojście odzyskiwania dla aparatu bazy danych nie powiodło się. Sprawdź dziennik błędów programu SQL Server pod kątem potencjalnych przyczyn.
Podczas przeglądania dziennika błędów programu SQL Server można zauważyć jedną z następujących grup komunikatów o błędach:
2021-07-27 14:08:44.31 spid6s Error: 2714, Severity: 16, State: 6.
2021-07-27 14:08:44.31 spid6s There is already an object named 'DatabaseMailUserRole' in the database.
2021-07-27 14:08:44.31 spid6s Error: 2759, Severity: 16, State: 0.
2021-07-27 14:08:44.31 spid6s CREATE SCHEMA failed due to previous errors.
2021-07-27 14:08:44.31 spid6s Error: 912, Severity: 21, State: 2.
2021-07-27 14:08:44.31 spid6s Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 2714, state 6, 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.
2021-07-27 14:08:44.32 spid6s Error: 3417, Severity: 21, State: 3.
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.
2021-07-27 14:08:44.31 spid6s Error: 2714, Severity: 16, State: 6.
2021-07-27 14:08:44.31 spid6s There is already an object named 'TargetServersRole' in the database.
2021-07-27 14:08:44.31 spid6s Error: 912, Severity: 21, State: 2.
2021-07-27 14:08:44.31 spid6s Script level upgrade for database 'master' failed because upgrade step 'msdb110_upgrade.sql' encountered error 2714, state 6, 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.
2021-07-27 14:08:44.32 spid6s Error: 3417, Severity: 21, State: 3.
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.
Rozwiązywanie problemu z uaktualnieniem ze schematem DatabaseMailUserRole
Zapoznaj się z poniższymi informacjami, aby rozwiązać problem z uaktualnieniem skojarzonym z programem DatabaseMailUserRole.
Przyczyna
Ten błąd występuje, jeśli schemat systemowy, użytkownik lub rola jest nieprawidłowo skonfigurowana w msdb bazie danych.
Występuje również wtedy, gdy skrypt uaktualniania nie może odtworzyć schematu DatabaseMailUserRole msdb w bazie danych. Ten problem może wystąpić, gdy DatabaseMailUserRole schemat nie jest własnością DatabaseMailUserRole roli, na przykład jeśli schemat jest własnością dbo.
Aby uzyskać więcej informacji na temat skryptów uaktualniania bazy danych wykonywanych podczas instalacji aktualizacji AKTUALIZACJI lub SP, zobacz Rozwiązywanie problemów z błędami skryptów uaktualniania podczas stosowania aktualizacji.
Rozwiązanie
Zatrzymaj i uruchom ponownie program SQL Server przy użyciu języka T902. Możesz na przykład uruchomić to polecenie w wierszu polecenia:
W przypadku wystąpienia domyślnego:
NET START MSSQLSERVER /T902W przypadku nazwanych wystąpień:
NET START MSSQL$INSTANCENAME /T902msdbUtwórz kopię zapasową bazy danych jako środek ostrożności.BACKUP DATABASE msdb TO disk = '<backup folder>'Otwórz program SQL Server Management Studio, połącz się z wystąpieniem programu SQL Server i wykonaj kopię zapasową
msdbbazy danych.Rozwiń węzeł Bazy danych Systemowe bazy danych>>>
msdbSchematy zabezpieczeń>>DatabaseMailuserRole.Usuń schemat o nazwie
DatabaseMailUserRole.Zatrzymaj program SQL Server i uruchom go ponownie bez flagi śledzenia 902.
Po uruchomieniu programu SQL Server bez flagi śledzenia 902 skrypt uaktualniania zostanie ponownie wykonany, a
DatabaseMailUserRoleschemat zostanie ponownie utworzony.- Jeśli skrypt uaktualniania SP lub CU zakończy się pomyślnie, sprawdź dziennik błędów programu SQL Server i folder bootstrap, aby sprawdzić.
- Jeśli skrypt uaktualniania nie powiedzie się ponownie, sprawdź dziennik błędów programu SQL Server pod kątem innych błędów i rozwiąż problemy z nowymi błędami.
Rozwiązywanie problemu z uaktualnieniem roli TargetServersRole
Zapoznaj się z poniższymi informacjami, aby rozwiązać problem z uaktualnieniem skojarzonym z programem TargetServersRole.
Przyczyna
Ten błąd występuje, gdy skrypt uaktualniania nie może ponownie utworzyć TargetServersRole roli zabezpieczeń w msdb bazie danych. Ta rola jest używana w środowiskach z wieloma serwerami. Domyślnie TargetServersRole rola zabezpieczeń jest własnością dboelementu , a rola jest właścicielem schematu TargetServersRole . Jeśli przypadkowo zmienisz to skojarzenie, a instalowana aktualizacja zawiera zmiany w jednej z tych ról, uaktualnienie może zakończyć się niepowodzeniem i zwróceniem błędu 2714: There is already an object named 'TargetServersRole' in the database. Aby rozwiązać ten problem, wykonaj następujące kroki:
Rozwiązanie
Zatrzymaj i uruchom ponownie program SQL Server przy użyciu języka T902.
W przypadku wystąpienia domyślnego:
NET START MSSQLSERVER /T902W przypadku nazwanych wystąpień:
NET START MSSQL$INSTANCENAME /T902msdbUtwórz kopię zapasową bazy danych jako środek ostrożności.BACKUP DATABASE msdb TO disk = '<backup folder>'Utwórz listę użytkowników (jeśli istnieją), którzy są obecnie częścią tej roli. Możesz wyświetlić listę członków roli, uruchamiając następujące zapytanie:
EXEC msdb.dbo.sp_helprolemember 'TargetServersRole'Upuść
TargetServersRolerolę, używając następującej instrukcji:EXEC msdb.dbo.sp_droprole @rolename = N'TargetServersRole'Aby sprawdzić, czy problem został rozwiązany, uruchom ponownie wystąpienie programu SQL Server bez użycia flagi
902śledzenia .Dodaj ponownie użytkowników z kroku 3 do
TargetServersRole.