KB2640027 - CORREÇÃO: SQL Server Agent trabalho falha se você definir o tipo de agendamento de trabalho como "Iniciar automaticamente quando SQL Server Agent começa" no SQL Server 2008 SP2, SQL Server 2008 SP3, SQL Server 2008 R2 SP1 ou SQL Server 2008 R2 SP2

Aplica-se A
SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Service Pack 2 SQL Server 2008 Service Pack 3 SQL Server 2008 Standard SQL Server 2008 R2 Service Pack 2

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:

  1. Clique em Iniciar , clique em Executar , digite regedit na caixa Abrir e, em seguida, clique em OK .

  2. Localize e, em seguida, clique na seguinte subchave do registo:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.instance\SQLServerAgent\

  3. No painel Detalhes , clique com o botão direito do mouse em RecoveredDatabasesForAgentStartup e clique em Modificar.

  4. Na caixa Dados do valor , digite ALL.

    Observação O valor padrão da entrada do Registro RecoveredDatabasesForAgentStartup é MSDB.

  5. 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.