Share via


MSSQLSERVER_912

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores – Somente Windows

Detalhes

Atributo Valor
Nome do Produto SQL Server
ID do evento 912
Origem do Evento MSSQLSERVER
Componente SQLEngine
Nome simbólico DB_RUNSCRIPTUPGRADE_STEP_FAILED
Texto da mensagem A atualização de nível de script do banco de dados '%.*ls' falhou porque a etapa de atualização '%.*ls' encontrou o erro %d, estado %d, severidade %d. Esta é uma condição de erro grave que pode interferir na operação normal e o banco de dados será colocado offline. Se o erro ocorreu durante a atualização do banco de dados 'mestre', ele impedirá que toda a instância do SQL Server seja iniciada. Examine as entradas anteriores do log de erros, execute as ações corretivas apropriadas e reinicie o banco de dados, para que as etapas de atualização do script sejam concluídas.

Explicação

O erro 912 indica que o script de banco de dados não foi executado e que os bancos de dados foram atualizados para o nível mais recente exigido pelo servidor. Essa é uma mensagem de erro geral que contém uma referência ao script de atualização com falha e qual erro o script com falha encontrou.

Quando SQL Server é atualizado, ou uma atualização cumulativa é aplicada, apenas os binários são atualizados inicialmente. O banco de dados e seus objetos permanecem inalterados. Depois que os binários são substituídos por novas versões e o serviço é reiniciado pela primeira vez, uma atualização de banco de dados é iniciada. Os scripts de atualização a serem executados estão localizados em C:\Arquivos de Programas\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Install.

Se o processo de atualização encontrar erros no nível de script (erro 912), outros erros poderão ser gerados. Por exemplo, esses erros podem acompanhar o erro 912 e ajudar a explicar melhor a falha:

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.

Normalmente, quando o processo de instalação falha, o usuário pode ver o seguinte erro na GUI, supondo que a instalação seja feita manualmente usando o Assistente. Tenha em mente que esse erro pode ser gerado com uma ampla variedade de problemas de instalação. Mas, em todos os casos, ele direciona você para marcar o log de erros SQL Server para obter mais informações.

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

falha de atualização na GUI

Ação do usuário

Para localizar a causa do problema, siga estas etapas:

  1. Localize e abra o SQL Server Errorlog.
  2. Examine o log quanto a erros ocorridos imediatamente antes do erro 912 e concentre-se na solução de problemas do erro referenciado nas mensagens do Erro 912.
  3. Para alguns cenários comuns relatados pelos clientes da Microsoft, confira "Falha no identificador de recuperação do Mecanismo de Banco de Dados" e erros "912" e "3417"
  4. Em alguns casos, como parte do processo, talvez seja necessário iniciar o serviço SQL Server com o sinalizador de rastreamento 902 (veja as etapas abaixo). Iniciar o serviço com T902 permite que o serviço ignore a execução dos scripts de atualização durante a inicialização. Dessa forma, você tem a chance de investigar e corrigir o problema subjacente.
  5. Remova o sinalizador de rastreamento depois de resolver o problema para que o processo de instalação possa reiniciar a fase de execução do script de atualização.

Etapas para iniciar SQL Server com o sinalizador de rastreamento 902

Como usar o Configuration Manager

  1. Inicie o SQL Server Configuration Manager(Gerenciador de Configuração do SQL Server).
  2. Selecione a instância SQL Server nos Serviços do SQL Server.
  3. Clique com o botão direito do mouse na instância e selecione Propriedades.
  4. Selecione a guia Parâmetros de Inicialização.
  5. Use o campo Especificar um parâmetro de inicialização para adicionar o sinalizador de rastreamento. Digite "-T902" (sem aspas) e clique em Adicionar.
  6. Selecione OK e feche as propriedades da instância.
  7. Inicie o serviço do SQL Server.

Para obter mais informações sobre como configurar as opções de inicialização, confira Serviços do SQL Configuration Manager – Configurar opções de inicialização do servidor

Observação

Lembre-se de remover -T902 da configuração depois de resolver o problema.

Prompt de comando usando sqlservr.exe

  1. Abra um prompt de comando com privilégios administrativos e altere o diretório para o diretório Binn do SQL Server, por exemplo, C:\Arquivos de Programas\Microsoft SQL Server\MSSQLXX.YYYY\MSSQL\Binn.

  2. Execute o sqlservr.exe -s <instance> -T902

    Instância padrão:

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

    Instância nomeada, em que "sql2016" é um exemplo de nome de instância:

    cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn
    sqlservr.exe -s sql2016  -T902
    
  3. Para interromper a instância quando terminar, pressione CTRL+C e Y

Prompt de comando usando net start

Instância padrão:

NET START MSSQLSERVER /T902 

Instância nomeada:

NET START MSSQL$INSTANCENAME  /T902