DatabaseBackup - USER_DATABASES - LOG: Este trabalho falha dizendo "Executado como usuário: Domínio\XXXX-SVC. Não é possível abrir o arquivo de saída da etapa. A etapa falhou."
O erro ocorre apenas com o trabalho de backup de LOG.
Os outros trabalhos do DatabaseBackup (FULL, DIFF) funcionam bem com a mesma conta SVC. Portanto, a conta de serviço tem as permissões apropriadas.
O arquivo de saída (propriedades da etapa do trabalho-->Avançado) é F:\SQLAgentLog\, que é o mesmo para todos os trabalhos. O único problema é com o trabalho de backup de LOG. Alguém já passou por isso e existe alguma solução?
Ambiente atual:
SQL Server: 2012 SP3 CU8
SO: Windows Server 2012
Nota: Isso estava funcionando muito bem em um Windows Server 2008 !!
Acontece que a pessoa que migrou os trabalhos do servidor antigo para o novo servidor editou os trabalhos manualmente.
Uma das edições foi que
"Output File: (Job Step properties-->Advanced)"
isso foi definido como local de log padrãoC:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log
no servidor antigo.No servidor migrado, ele foi editado para
"F:\SQLAgentLog\Log\"
onde o diretórioLog
não existia. (essa pessoa perdeu a exclusão doLog
texto no caminho)Nos outros trabalhos (FULL e DIFF) o texto
Log
foi removido, então foi definido assim"F:\SQLAgentLog\"
e ambos estavam funcionando bem!Tente alterar Type in
Job Step Properties
paraTransact SQL Script
e, em seguida, altere o próprio script removendosqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d master -Q "
e aspas no final do script. Em seguida, tente executar o trabalho e nos informe se funcionou.Tive o mesmo problema, no nosso caso a unidade com os logs estava cheia.
Poderia executar o trabalho do SQL como na postagem de George Ks, pois não grava no disco. Em seguida, tive que liberar espaço, verificar a agenda existente para a limpeza do arquivo de SAÍDA (oops) e tudo voltar ao normal.
Se
Jobname
contiver dois pontos duplos (':'), esse erro também ocorre em sistemas Windows.O OutputFileName normalmente é construído com a seguinte macro:
...$(ESCAPE_SQUOTE(JOBNAME))…
Portanto, esses dois pontos duplos são usados no tempo de execução do trabalho. (consulte a página avançada na etapa do trabalho) Em um sistema Windows, os dois pontos duplos são um sinal reservado e proibido em nomes de arquivos.