Поделиться через


Обновление SQL Server с SQL Server 2014 или SQL Server 2016 до 2017 завершается сбоем и возвращает ошибку 1712

Эта статья поможет устранить проблему, из-за которой при обновлении SQL Server 2016 или SQL Server 2014 до SQL Server 2017 сообщает 1712 при выполнении скриптов обновления базы данных.

Симптомы

Обновление до экземпляра SQL Server 2017 может завершиться ошибкой при запуске скрипта обновления со следующей ошибкой ISServer_upgrade.sql :

Ошибка при ожидании дескриптора восстановления компонента Database Engine. Проверьте журнал ошибок SQL Server на наличие потенциальных причин.

При проверке журнала ошибок SQL Server обратите внимание на одно из следующих записей об ошибке:

2020-10-26 10:08:09.94 spid6s      Database 'master' is upgrading script 'ISServer_upgrade.sql' from level 0 to level 500. 
2020-10-26 10:08:09.94 spid6s      --------------------------------------------- 
2020-10-26 10:08:09.94 spid6s      Starting execution of ISServer_upgrade.SQL 
2020-10-26 10:08:09.94 spid6s      --------------------------------------------- 
2020-10-26 10:08:09.94 spid6s        
2020-10-26 10:08:09.94 spid6s      Taking SSISDB to single user mode 
2020-10-26 10:08:09.94 spid6s      Setting database option SINGLE_USER to ON for database 'SSISDB'. 
2020-10-26 10:08:10.47 spid6s      Error: 1712, Severity: 16, State: 1. 
2020-10-26 10:08:10.47 spid6s      Online index operations can only be performed in Enterprise edition of SQL Server. 
2020-10-26 10:08:10.47 spid6s      Error: 917, Severity: 15, State: 1. 
2020-10-26 10:08:10.47 spid6s      An upgrade script batch failed to execute for database 'master' due to compilation error. Check the previous error message for the line which caused compilation to fail. 
2020-10-26 10:08:10.47 spid6s      Error: 912, Severity: 21, State: 2. 
2020-10-26 10:08:10.47 spid6s      Script level upgrade for database 'master' failed because upgrade step 'ISServer_upgrade.sql' encountered error 917, state 1, severity 15. 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. 
2020-10-26 10:08:10.48 spid6s      Error: 3417, Severity: 21, State: 3. 
2020-10-26 10:08:10.48 spid6s      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. 
2020-10-26 10:08:10.48 spid6s      SQL Server shutdown has been initiated 
2020-10-26 10:08:10.48 spid6s      SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required. 
2020-10-26 10:08:10.50 spid15s     The SQL Server Network Interface library successfully deregistered the Service Principal Name (SPN) [ MSSQLSvc/SAFHSQL01.SAFEHAVEN.com ] for the SQL Server service. 
2020-10-26 10:08:10.50 spid15s     The SQL Server Network Interface library successfully deregistered the Service Principal Name (SPN) [ MSSQLSvc/SAFHSQL01.SAFEHAVEN.com:1433 ] for the SQL Server service.

Причина

Скрипт обновления SQL Server 2017 для производства (RTM) включает библиотеку динамической компоновки (DLL), которая выполняет операции с индексами в сети для всех выпусков SQL Server, хотя только выпуски Enterprise и Developer поддерживают эту функцию. Дополнительные сведения о сценариях обновления базы данных см. в статье "Устранение неполадок скриптов обновления при применении обновления".

Решение

Чтобы устранить ошибку 1712, выполните следующие действия.

  1. Запустите SQL Server вместе с флагом трассировки (TF) 902. Дополнительные сведения см. в разделе "Действия по запуску SQL с флагом трассировки 902".

    Примечание.

    Так как эта ошибка возникает после обновления двоичных файлов, ядро СУБД SQL Server уже будет находиться на уровне RTM SQL Server 2017, и вы по-прежнему можете запустить экземпляр с TF 902.

  2. Установите сборку SQL Server, которая является SQL Server 2017 CU5 или более поздней версии.

  3. Удалите TF 902 из параметров запуска, а затем перезапустите SQL Server.

  4. После запуска SQL Server без TF 902 скрипт обновления будет выполняться снова.

    • Если скрипт обновления завершится успешно, обновление пакета обновления (SP) или накопительного обновления (CU) завершится. Чтобы проверить завершенную установку, можно проверить журнал ошибок SQL Server и папку начальной загрузки.

    • Если скрипт обновления снова завершается ошибкой, проверьте журнал ошибок SQL Server для получения дополнительных записей об ошибках, а затем устраните новые ошибки.