Temos tarefas do agente SQL que reconhecem o AG: a primeira etapa da tarefa verifica se o servidor é primário (se sim, vá para a próxima etapa, que é a etapa real da tarefa), caso contrário, saia do relatório de sucesso da tarefa.
Existe 1 banco de dados que não está participando do AG (o plano é restaurar manualmente este banco de dados se houver um failover). Há um trabalho no primário que invoca um SP deste banco de dados. Sou solicitado a criar este trabalho no servidor secundário (para que após o failover, só tenhamos que restaurar o banco de dados sem precisar recriar o trabalho). Como o banco de dados não existe no secundário, não consigo criar um trabalho para esse banco de dados no secundário. Mesmo que eu restaure uma cópia do banco de dados no secundário, crie o trabalho e exclua o banco de dados, o menu suspenso do banco de dados (dentro do trabalho) ficará vazio.
Uma solução é criar manualmente o failover da postagem de trabalho após restaurar esse banco de dados. Existe alguma solução alternativa que me permita criar o trabalho do agente sem que o banco de dados exista?
O menu suspenso do banco de dados na janela Job Step serve apenas para especificar o contexto de execução. Realmente não importa qual banco de dados você escolhe para o contexto de execução se você qualificar totalmente as referências de objeto do seu código (como Tibor menciona) e desde que o usuário em execução tenha acesso a esse banco de dados.
Uma aposta segura no seu caso seria escolher o
master
banco de dados e qualificar totalmente o nome do procedimento com a convenção de nomenclatura de 3 partes da seguinte forma:Ou apenas alterne o contexto do banco de dados em execução como parte do código com uma
USE
instrução em seu código da seguinte forma:Eu recomendaria a primeira opção de qualificar totalmente a referência de objeto.