
Recentemente decidi atualizar meu ambiente de homologação com os Services Packs e Cumulatives Updates disponíveis para cada versão do SQL Server. Quem nunca precisou atualizar com SP ou CU seu ambiente SQL Server? E quem nunca se deparou um erro inesperado na atualização? Se você ainda não precisou ou não se deparou com um erro, não se preocupe um dia precisará e passará por isso e esse procedimento tende a ser uma rotina na sua vida.
Pois bem, no meu caso não foi diferente, depois de atualizar mais da metade do meu ambiente, o lado negro da força resolveu aparecer e começar a falhar as minhas atualizações em um determinado cluster.
Eu já havia atualizado nesse mesmo ambiente o Service Pack 2 do SQL Server 2008 R2 e estava tentando atualizar para o Cumulative Update 1 quando os erros começam a aparecer.
Analisando o log de erro gerado que por padrão fica na pasta C:Program FilesMicrosoft SQL Server100Setup BootstrapLog<Data e Hora><Instance Name> encontrei a seguinte mensagem:
Error: Action “Microsoft.SqlServer.Configuration.ScoExtension.VerifiedCopyFileAction” threw an exception during execution.
Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: File c:Program FilesMicrosoft SQL ServerMSSQL10_50. <Instance Name>MSSQLBinnDllTmp64sqlagentctr100.dll could not be copied to file path C:Windowssystem32perf-MSSQL10_50. <Instance Name>-sqlagtctr.dll. —> Microsoft.SqlServer.Configuration.ScoExtension.CopyFileException: File c:Program FilesMicrosoft SQL ServerMSSQL10_50. <Instance Name>MSSQLBinnDllTmp64sqlagentctr100.dll could not be copied to file path C:Windowssystem32perf-MSSQL10_50. <Instance Name>-sqlagtctr.dll. —> Microsoft.SqlServer.Configuration.Sco.ScoException: The process cannot access the file ‘C:Windowssystem32perf-MSSQL10_50. <Instance Name>-sqlagtctr.dll’ because it is being used by another process. —> System.IO.IOException: The process cannot access the file ‘C:Windowssystem32perf-MSSQL10_50. <Instance Name>-sqlagtctr.dll’ because it is being used by another process.
Essas duas mensagens em negrito me chamaram atenção para tentar resolver meu problema.
Por que eu não consigo copiar o arquivo? Qual é o processo que está usando essa dll? No meu cluster, primeiramente atualizo os nós passivos, não existia nenhum acesso ou serviço rodando na maquina. Tentei reiniciar o servidor, executar com outro login e nada. Então resolvi dar uma pesquisada na internet e encontrei um post (link) bem simples que resolveu meu problema
Solução é renomear o arquivo o arquivo sqlagtctr.dll dentro da pasta C:Windowssystem32 e executar novamente o setup.
Foi simples de resolver meu problemas porem ainda estou sem saber o motivo do erro acontecer em apenas um ambiente.
Tiago Balabuch
Related Posts

Transparent Data Encryption and its tricks
Transparent Data Encryption - TDE não é mais uma novidade, mas...

Azure SQL Database – Vulnerability Assessment
O Vulnerability Assessment (VA) primeiramente introduzido no Azure SQL Database e depois entregue na versão do SQL...