A Microsoft distribui as correções do Microsoft SQL Server 2008 SP2 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 SP2 corrigir lançamento.
Sintomas
Tenha em conta o seguinte cenário:
Siga um destes procedimentos
- Instale a Atualização Cumulativa 2 para o Microsoft SQL Server 2008 Service Pack 2 (SP2) ou uma versão posterior do pacote de atualizações cumulativas
- Atualizar SQL Server 2008 para o SQL Server 2008 Service Pack 3 (SP3)
- Atualizar o SQL Server 2008 R2 para o SQL Server 2008 R2 Service Pack 1 (SP1) ou para uma versão posterior do service pack
Você cria um trabalho de SQL Server Agent em um banco de dados de usuários e define o tipo de agendamento como Iniciar automaticamente quando SQL Server Agent começa.
Reinicie o serviço SQL Server.
Nesse cenário, o trabalho de SQL Server Agent falha.
Causa
Este problema ocorre porque a recuperação da base de dados do utilizador não é concluída quando a tarefa é iniciada. Depois de instalar a atualização cumulativa 2 para SQL Server 2008 SP2 ou atualizar SQL Server 2008 para SQL Server 2008 SP3 ou atualizar SQL Server 2008 R2 para SQL Server 2008 R2 SP1, SQL Server Agent é iniciado logo após a recuperação dos bancos de dados MSDB terminar.
Observação SQL Server Agent deve começar depois que todos os bancos de dados tiverem sido recuperados.
Resolução
SQL Server 2008 R2 Service Pack 1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 9. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2 Service Pack 1, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2756574 Pacote de atualizações cumulativas 9 para SQL Server 2008 R2 Service Pack 1Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 R2 Service Pack 1 anterior lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2567616 As compilações do SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2 Service Pack 1
SQL Server 2008 Service Pack 3
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 7 para SQL Server 2008 Service Pack 3. Para mais informações sobre como obter este pacote de actualização cumulativa, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2738350 Pacote de Atualização Cumulativa 7 para SQL Server 2008 Service Pack 3Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 Service Pack 3 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2629969 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 3
Atualização cumulativa 8 para SQL Server 2008 Service Pack 2
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 8 para SQL Server 2008 Service Pack 2. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 Service Pack 2, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2648096 Pacote de atualizações cumulativas 8 para SQL Server 2008 Service Pack 2Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 Service Pack 2 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2402659 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 2
SQL Server 2008 R2 Service Pack 2
A correção para esse problema foi lançada pela primeira vez na Atualização Cumulativa 2 para SQL Server 2008 R2 Service Pack 2. Para mais informações sobre como obter este pacote de actualização cumulativa, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2740411 Pacote de Atualização Cumulativa 2 para SQL Server 2008 R2 Service Pack 2Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 R2 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2730301 As compilações SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2 Service Pack 2
Informações da chave do Registo
Importante: esta secção, método ou tarefa contém passos que explicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo incorretamente. Por essa razão, certifique-se de que segue estes passos cuidadosamente. Como forma de proteção adicional, crie uma cópia de segurança do registo antes de o modificar. Assim, se ocorrer algum problema pode restaurar o registo. Para mais informações sobre como fazer uma cópia de segurança e restaurar o registo, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
322756 Como fazer backup e restaurar o registro no WindowsDepois de aplicar esse hotfix, você deve primeiro reiniciar o serviço de SQL Server Agent para a instância afetada. Uma nova chave do Registro RecoveredDatabasesForAgentStartup é criada quando o serviço é reiniciado. Essa chave do Registro define se o SQL Server Agent aguarda a conclusão da recuperação dos bancos de dados do usuário antes de iniciar o trabalho de SQL Server Agent.
Para que configuremos esta chave do registo automaticamente, aceda à secção "Corrigir por mim". Se preferir configurar esta chave do registo sozinho, vá para a secção "Deixar-me corrigir sozinho".
Resolver por mim
Para configurar esta chave de registo automaticamente, clique no botão ou na ligação Fix it . Em seguida, clique em Executar na caixa de diálogo Download de arquivo e siga as etapas no assistente de correção.
Notas
- Antes de executar esta solução de correção, você deve instalar o hotfix descrito no artigo da Base de dados de Conhecimento da Microsoft (KB) 2648096. Em seguida, tem de reiniciar o serviço SQL Server Agent da instância afetada.
- Este assistente pode estar apenas em inglês. No entanto, a correção automática também funciona para versões do Windows noutros idiomas.
- Se não estiver a trabalhar no computador que tem o problema, guarde a solução de Correção fácil numa pen USB ou num CD e, em seguida, execute-a no computador que tem o problema.
Em seguida, vá para a seção "Isso corrigiu o problema?".
Deixar-me corrigir o problema
Para configurar a chave do registo RecoveredDatabasesForAgentStartup, siga estes passos:
Clique em Iniciar , clique em Executar , digite regedit na caixa Abrir e, em seguida, clique em OK .
Localize e, em seguida, clique na seguinte subchave do registo:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.instance\SQLServerAgent\No painel Detalhes , clique com o botão direito do mouse em RecoveredDatabasesForAgentStartup e clique em Modificar.
Na caixa Dados do valor , digite ALL.
Observação O valor padrão da entrada do Registro RecoveredDatabasesForAgentStartup é MSDB.
Feche o Editor de Registo.
Observação Se você definir o valor da entrada do Registro RecoveredDatabasesForAgentStartup para um valor que não seja MSDB ou ALL, uma mensagem de aviso será registrada no log de SQL Server Agent e SQL Server Agent aguardará apenas pelo banco de dados MSDB.
O problema foi corrigido?
- Verifique se o problema foi corrigido. Se o problema estiver corrigido, terminou esta secção. Se o problema não estiver corrigido, pode contactar o suporte.
- Agradecemos os seus comentários. Para fornecer feedback ou relatar quaisquer problemas com esta solução, deixe um comentário no blog "Fix it for me" ou envie-nos um e-mail.
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".
Solução
Para contornar esse problema, adicione uma etapa ao trabalho de SQL Server Agent que verifica se os bancos de dados de destino estão online. Este passo deve ser o primeiro passo.
Observação Você pode verificar o status do banco de dados consultando o estado da coluna na tabela do sistema sys.databases.