Mensagem de erro "Falha ao criar arquivos temporários no Distribution Agent" ao executar o Distribution Agent no SQL Server
Este artigo ajuda você a contornar o problema ao executar o Distribution Agent no SQL Server.
Versão original do produto: SQL Server
Número original do KB: 956032
Sintomas
Em uma instância do Microsoft SQL Server instalada em um computador baseado no Windows Server, você configura uma publicação transacional. Você usa o Distribution Profile for OLEDB streaming
perfil para o Agente de Distribuição. Ao executar o Distribution Agent, você recebe uma mensagem de erro como a seguinte:
O agente de distribuição falhou ao criar arquivos temporários no diretório C:\Arquivos de Programas\Microsoft SQL Server\<nnn>\COM . O sistema retornou o código de erro 5.
Observação
<nnn> identifica a versão do SQL Server. Para obter mais informações, consulte Locais de Arquivos para Instâncias Padrão e Nomeadas do SQL Server.
Causa
Quando você usa o perfil para o Distribution Agent ou usa o Distribution Profile for OLEDB streaming
streaming OLEDB em um perfil personalizado, antes do SQL Server 2019, o Distribution Agent cria arquivos temporários no diretório: C:\Program Files\Microsoft SQL Server\<nnn>\COM.
Observação
No SQL Server 2019 e versões superiores, esses arquivos temporários agora são criados na conta que está executando o Distribution Agent, portanto, em vez do diretório C:\Program Files\Microsoft SQL Server\<nnn>\COM, esses arquivos estariam no diretório C:\Users\DistributionAgentAccount\AppData\Temp. A DistributionAgentAccount
é a conta sob a qual o Agente de Distribuição está sendo executado.
Se a conta que está executando o SQL Server Agent não tiver acesso de gravação à pasta COM, o Distribution Agent falhará quando estiver sendo executado como um trabalho. Se você executar o Distribution Agent de uma linha de comando usando uma conta que não tenha acesso de gravação à pasta COM, a mesma falha ocorrerá.
Solução alternativa
Para contornar esse problema, conceda permissões de gravação à pasta COM da conta que está executando o serviço SQL Server Agent. Se você executar o Distribution Agent em uma linha de comando, conceda permissões de gravação à pasta COM da conta que você usa para executar o Distribution Agent.
Observação
Se você alterar a conta atribuída ao trabalho de replicação, a conta deverá ter permissões de gravação na pasta COM.
Se você ainda encontrar esse problema intermitentemente depois de seguir estas etapas, certifique-se de que a pasta COM seja excluída de qualquer verificação antivírus que ocorra no sistema.
Mais informações
O código de erro 5 indica que o erro é "acesso negado".