Eu tenho um conjunto espelhado de trabalhos entre a configuração do meu SQL Server de failover primário e espelhado atual. No passado, os trabalhos no servidor espelhado, quando habilitados, falhavam, pois não conseguiam abrir o banco de dados local, pois ele estava em estado de restauração. No entanto, agora estou vendo os trabalhos serem bem-sucedidos e estão sendo encaminhados para os bancos de dados primários atuais.
Eu vi esse comportamento para o SQL Server Driver que .Net usa para permitir uma reconexão automática se ocorrer um failover. Eu não vi esse comportamento antes em um trabalho SQL e não consigo encontrar nenhuma documentação sobre isso.
Encontrei outras duas menções a esse comportamento ( one , two ) com soluções alternativas, porém estou com dificuldade em localizar a documentação sobre esse recurso para saber se foi uma alteração de configuração que fiz ou se foi ativado com uma atualização que instalei.
Esse recurso está documentado em alguma referência da Microsoft?
Os trabalhos são etapas T-SQL e estão lendo e gravando (com êxito). Alguns são T-SQL embutidos e outros chamam SPs nos bancos de dados de destino. Estou usando espelhamento padrão e não grupos de disponibilidade.
Parece que muitos enfrentaram esse problema no passado e todos implementaram uma ou outra solução alternativa para se livrar dele. Não documentado no site da Microsoft ou apresentado por qualquer SME (Subject Matter Expert) conhecido.
Em primeiro lugar, eu diria que o espelhamento de banco de dados está obsoleto e não será suportado pela Microsoft em um futuro próximo, portanto, você deve planejar alterá-lo e substituí-lo por outra metodologia.
Dito acima, acho que existem algumas soluções interessantes que podem ser usadas para evitar esse problema:
msdb.sys.database_mirroring
e inclua isso em sua etapa de trabalho. Leia mais aqui como fazer.Para desabilitar as etapas do trabalho, você pode usar o script abaixo se houver muitos trabalhos:
Espero que isto ajude.