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


MSSQLSERVER_912

Область применения: SQL Server 2019 (15.x) и более поздних версий — только Windows

Сведения

Атрибут Значение
Название продукта SQL Server
ИД события 912
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя DB_RUNSCRIPTUPGRADE_STEP_FAILED
Текст сообщения Произошел сбой обновления уровня скрипта для базы данных "%.*ls", так как на шаге обновления "%.*ls" произошла ошибка %d (состояние %d, серьезность %d). Это состояние серьезной ошибки, которое может повлиять на нормальную работу и база данных будет отключена. Если ошибка произошла во время обновления базы данных «master», это приведет к тому, что весь экземпляр SQL Server не будет запущен. Нужно проверить предыдущие записи журнала ошибок на предмет ошибок, предпринять соответствующие действия по исправлению, затем перезапустить базу данных. В этом случае шаги обновления скрипта будут завершены.

Описание

Ошибка 912 указывает, что скрипт базы данных не удалось выполнить и обновить базы данных до последнего уровня, требуемого сервером. Это общее сообщение об ошибке, содержащее ссылку на скрипт обновления, который завершился сбоем, и ошибку, обнаруженную неудачным сценарием.

Когда SQL Server обновляется или применяется накопительное обновление, сначала обновляются только двоичные файлы. База данных и ее объекты остаются неизменными. После замены двоичных файлов новыми версиями и перезапуска службы в первый раз запускается обновление базы данных. Выполняемые скрипты обновления находятся в папке C:\Program Files\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Install\.

Если в процессе обновления обнаруживаются ошибки обновления на уровне скриптов (ошибка 912), могут возникать другие ошибки. Например, эти ошибки могут сопровождаться ошибкой 912 и давать более подробное объяснение ошибки:

Error: 1101, Severity: 17, State: 1.
Could not allocate a new page for database 'tempdb' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'xxx.sql' encountered error <Error Number>, state <Error State>, severity <Error Severity>. 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 для получения дополнительных сведений.

Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.

Сбой обновления в графическом интерфейсе

Действие пользователя

Чтобы найти причину проблемы, выполните следующие действия.

  1. Найдите и откройте журнал ошибок SQL Server.
  2. Изучите журнал ошибок, возникших непосредственно перед ошибкой 912, и сосредоточьтесь на устранении неполадок, на которые ссылается сообщение об ошибке 912.
  3. В некоторых распространенных сценариях, о которых сообщили клиенты Майкрософт, см. статьи "Ожидание сбоя ядро СУБД дескриптор восстановления" и "912" и "3417"
  4. В некоторых случаях в процессе может потребоваться запустить службу SQL Server с флагом трассировки 902 (см. инструкции ниже). Запуск службы с T902 позволяет службе пропускать выполнение скриптов обновления во время запуска. Таким образом, вы получите возможность исследовать и устранить основную проблему.
  5. Не забудьте удалить флаг трассировки после устранения проблемы, чтобы процесс установки смог перезапустить этап выполнения скрипта обновления.

Шаги по запуску SQL Server с флагом трассировки 902

С помощью диспетчера конфигурации

  1. Запустите диспетчер конфигурации SQL Server.
  2. Выберите экземпляр SQL Server в службах SQL Server.
  3. Щелкните экземпляр правой кнопкой мыши и выберите пункт Свойства.
  4. Выберите вкладку Параметры запуска.
  5. Используйте поле Укажите параметр запуска, чтобы добавить флаг трассировки. Введите "-T902" (без кавычки) и нажмите кнопку "Добавить".
  6. Нажмите кнопку ОК и закройте свойства экземпляра.
  7. Запустите службу SQL Server.

Дополнительные сведения о настройке параметров запуска см. в разделе Службы SQL Configuration Manager — настройка параметров запуска сервера.

Примечание.

После устранения проблемы обязательно удалите параметр "-T902" из конфигурации.

Командная строка с использованием sqlservr.exe

  1. Откройте командную строку с правами администратора и перейдите в каталог Binn SQL Server, например C:\Program Files\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Binn.

  2. Выполните sqlservr.exe -s <instance> -T902

    Экземпляр по умолчанию:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>\MSSQL\Binn
    sqlservr.exe -s MSSQLSERVER  -T902
    

    Именованный экземпляр, где "sql2016" — это пример имени экземпляра:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. Чтобы остановить работу экземпляра по завершении, нажмите кнопку CTRL+C, а затем — Y

Командная строка с использованием net start

Экземпляр по умолчанию:

NET START MSSQLSERVER /T902 

Именованный экземпляр:

NET START MSSQL$INSTANCENAME  /T902