MSSQLSERVER_912
Aplica-se a: SQL Server 2019 (15.x) e posterior - 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 no nível do script para o banco de dados '%.*ls' falhou porque a etapa de atualização '%.*ls' encontrou o erro %d, estado %d, gravidade %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 do banco de dados falhou ao ser executado e para atualizar o(s) banco(s) de dados 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 o SQL Server é atualizado ou uma atualização cumulativa é aplicada, somente 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. Lembre-se de que esse erro pode ser gerado com uma ampla variedade de problemas de instalação. Mas, em todos os casos, ele direciona você a verificar o log de erros do SQL Server para obter mais informações.
Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
Ação do usuário
Para encontrar a causa do problema, siga estas etapas:
- Localize e abra o log de erros do SQL Server.
- Examine o log em busca de erros ocorridos imediatamente antes do erro 912 e concentre-se na solução de problemas do erro referenciado na mensagem do Erro 912.
- Para alguns cenários comuns relatados pelos clientes da Microsoft, consulte os erros "Falha na espera do identificador de recuperação do Mecanismo de Banco de Dados" e "912" e "3417"
- Em alguns casos, como parte do processo, talvez seja necessário iniciar o serviço SQL Server com o sinalizador de rastreamento 902 (consulte 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.
- Certifique-se de remover 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 o SQL Server com o sinalizador de rastreamento 902
Como usar o Configuration Manager
- Inicie o SQL Server Configuration Manager(Gerenciador de Configuração do SQL Server).
- Selecione a instância do SQL Server no SQL Server Services.
- Clique com o botão direito do mouse na instância e selecione Propriedades.
- Selecione a guia Parâmetros de Inicialização.
- Use o campo Especificar um parâmetro de inicialização para adicionar o sinalizador de rastreamento. Digite "-T902" (sem aspas) e clique em Adicionar.
- Selecione OK e feche as propriedades da instância.
- Inicie o serviço 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
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.
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
Para interromper a instância quando terminar, pressione
CTRL+C
eY
Prompt de comando usando net start
Instância padrão:
NET START MSSQLSERVER /T902
Instância nomeada:
NET START MSSQL$INSTANCENAME /T902