Falha de atualização de Service Pack em Cluster

Olá Pessoal,

 

Estava realizando uma atualização de service pack de um SQL Server 2008 em cluster e a atualização ocorreu tudo normal, porem quando os serviços do SQL Server sobem uma serie de scripts começam a ser executados afim de atualizar as bases de dados de sistema do SQL Server. Nessa subida de serviços eles ficavam algo em torno de 1 minuto online e inesperadamente os serviços voltavam a ficar off-line. Analisando o arquivo ERRORLOG eu recebi a seguinte mensagem:

xxxx-xx-xx xx:xx:xx.xx spid6s      Error: 5118, Severity: 16, State: 1.
xxxx-xx-xx xx:xx:xx.xx spid6s      The file “X:\Dados\SQL\Data\temp_MS_AgentSigningCertificate_database.mdf” is compressed but does not reside in a read-only database or filegroup. The file must be decompressed.
xxxx-xx-xx xx:xx:xx.xx spid6s      Error: 1802, Severity: 16, State: 4.
xxxx-xx-xx xx:xx:xx.xx spid6s      CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
xxxx-xx-xx xx:xx:xx.xx spid6s      Error: 912, Severity: 21, State: 2.
xxxx-xx-xx xx:xx:xx.xx spid6s      Script level upgrade for database ‘master’ failed because upgrade step ‘sqlagent100_msdb_upgrade.sql’ encountered error 598, state 1, severity 25. 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.
xxxx-xx-xx xx:xx:xx.xx spid6s      Error: 3417, Severity: 21, State: 3.
xxxx-xx-xx xx:xx:xx.xx 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.

 

Algumas partes do log sao muito importantes para resolver o problema.

1) The file “X:\Dados\SQL\Data\temp_MS_AgentSigningCertificate_database.mdf” is compressed but does not reside in a read-only database or filegroup

2) Script level upgrade for database ‘master’ failed because upgrade step ‘sqlagent100_msdb_upgrade.sql’ encountered error 598, state 1, severity 25

Se voces tentarem encontrar esse arquivo temp_MS_AgentSigningCertificate_database.mdf voces nao iram encontrar, pois ele é gerado temporariamente na atualizaçao do Service Pack e excluido após o sucesso ou nao desse processo. Analisando a segunda mensagem vimos que ele tenta atualizar a base de dados master e  a grande pergunta é: Sera que a unidade X:\Dados\SQL\Data é realmente onde se encontra a base de dados master?

No meu caso esse era o problema, a unidade da base de dados master estava errada e por isso o SQL Server nao conseguia finalizar a atualizaçao.

Como resolver?
R: Vamos para as chaves de registro do Windows.

Voce devera ir ate o caminho HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.<Instance Name>\Setup\SQLDataRoot. Se a unidade nesse caminho leva voce a base de dados master, voce devera ir para o caminho HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer e analisar os registros de DefaultData e DefaultLog. É provavel que estes caminhos estejam diferentes, pois voce sempre coloca as bases de dados de usuario em locais diferentes. Pegue o valor que esta dentro de SQLDataRoot e coloque dentro das propriedades DefaultData e DefaultLog, confirme as opcoes e suba os serviços novamente para concluir a atualizaçao do Service Pack.

Assim que voce conseguir logar no SQL Server, voce pode alterar os diretorios para os arquivos de Data e Log pelo Management Studio.

Porque isso acontece??
R: Grande misterio que até hoje nao se possui uma resposta Alegre

 

Por hoje é isso, espero que esse post venha a ajudar alguem que estiver com esse mesmo problema.

 

Abraços,
Marcos Freccia
[MCTS|MCITP|MCT SQL Server 2008]

Sobre Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Publicado em março 15, 2012, em Administração, VirtualPass e marcado como , . Adicione o link aos favoritos. Deixe um comentário.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: