Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server 2019 (15.x) e versões posteriores no Windows
Detalhes
| Attribute | 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 do nível de 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 com o funcionamento regular e o banco de dados será colocado offline. Se o erro aconteceu 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 em busca de erros, execute as ações corretivas apropriadas e reinicie o banco de dados para que as etapas de atualização do script sejam executadas até a conclusão. |
Explanation
O erro 912 indica que o script da base de dados não foi executado e que foi necessário atualizar a(s) base de dados para o nível mais recente exigido pelo servidor. É uma mensagem de erro geral que contém uma referência ao script de atualização que falhou e ao erro que o script falhou encontrado.
Quando o SQL Server é atualizado ou é aplicada uma Atualização Cumulativa, apenas os binários são inicialmente atualizados. A base de dados e os seus objetos permanecem inalterados. Assim que os binários são substituídos por novas versões e o serviço reinicia pela primeira vez, inicia-se uma atualização da base de dados. Os scripts de atualização a executar encontram-se em C:\Program Files\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Install.
Se o processo de atualização encontrar erros de atualização ao nível do script (Erro 912), podem surgir outros erros. Por exemplo, estes 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 utilizador pode ver o seguinte erro na interface gráfica, assumindo que a instalação é feita manualmente através do Assistente. Tenha em mente que este erro pode ser causado por uma grande variedade de problemas de instalação. Mas, em todos os casos, encaminha-te para consultares o registo de erros do SQL Server para mais informações.
Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
Ação do utilizador
Para encontrar a causa do problema, siga estes passos:
- Localiza e abre o registo de erros do SQL Server.
- Examine o registo para erros que ocorreram imediatamente antes do erro 912 e concentre-se na resolução do erro referenciado na mensagem do Erro 912.
- Para alguns cenários comuns que os clientes Microsoft reportaram, veja os erros "Esperar na recuperação do Database Engine failed" e "912" e "3417"
- Em alguns casos, como parte do processo, pode ser necessário iniciar o serviço SQL Server com o traço flag 902 (ver passos abaixo). Iniciar o serviço com T902 permite que o serviço ignore a execução dos scripts de atualização durante o arranque. Assim, tens a oportunidade de investigar e resolver o problema subjacente.
- Certifique-se de remover a bandeira de rastreio assim que tiver resolvido o problema para que o processo de configuração possa reiniciar a fase de execução do script de atualização.
Passos para iniciar o SQL Server com a flag de traço 902
Utilização do Gestor de Configuração
- Iniciar o Gestor de Configuração do SQL Server.
- Selecione a instância do SQL Server nos Serviços SQL Server.
- Clique com o botão direito na instância e depois selecione Propriedades.
- Selecione o separador Parâmetros de inicialização.
- Use o campo Especificar um parâmetro de arranque para adicionar a bandeira de traço. Digite "-T902" (sem aspas) e clique em Adicionar.
- Selecione OK e feche as propriedades da instância.
- Inicia o serviço SQL Server.
Para mais informações sobre como configurar as opções de arranque, consulte SQL Configuration Manager Services - Configurar Opções de Arranque do Servidor
Observação
Certifique-se de remover -T902 da configuração assim que resolver o problema.
Prompt de comandos usando sqlservr.exe
Abra um prompt de comandos com privilégios administrativos e mude diretório para o diretório SQL Server Binn, por exemplo, C:\Program Files\Microsoft SQL Server\MSSQLXX. YYYY\MSSQL\Binn.
Executar o
sqlservr.exe -s <instance> -T902Instância Padrão:
cd \Program Files\Microsoft SQL Server\MSSQL<version>\MSSQL\Binn sqlservr.exe -s MSSQLSERVER -T902Instância Nomeada, onde "sql2016" é um exemplo de nome de instância:
cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn sqlservr.exe -s sql2016 -T902Para parar a instância quando terminaste, carrega
CTRL+Cem , entãoY
Prompt de comandos usando net start
Instância Padrão:
NET START MSSQLSERVER /T902
Exemplo Nomeado:
NET START MSSQL$INSTANCENAME /T902