Compartilhar via


A mensagem de erro "O agente de distribuição falhou ao criar arquivos temporários" ao executar o Agente de Distribuição no SQL Server

Este artigo ajuda você a contornar o problema ao executar o Agente de Distribuição em SQL Server.

Versão original do produto: SQL Server
Número de KB original: 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 Agente de Distribuição, você recebe uma mensagem de erro como a seguinte:

O agente de distribuição falhou ao criar arquivos temporários no diretório C:\Program Files\Microsoft SQL Server\<nnn>\COM. Código de erro retornado pelo sistema 5.

Observação

<nnn> identifica a versão do SQL Server. Para obter mais informações, consulte Locais de arquivo para instâncias padrão e nomeadas de SQL Server.

Motivo

Quando você usa o Distribution Profile for OLEDB streaming perfil para o Agente de Distribuição ou usa o streaming OLEDB em um perfil personalizado, antes de SQL Server 2019, o Agente de Distribuição cria arquivos temporários no diretório: C:\Arquivos do Programa\Microsoft SQL Server\<nnn>\COM.

Observação

Em versões SQL Server 2019 e superiores, esses arquivos temporários agora são criados sob a conta que está executando o Agente de Distribuição, portanto, em vez do diretório C:\Arquivos de Programas\Microsoft SQL Server\<nnn>\COM, esses arquivos estariam no diretório C:\Users\DistributionAgentAccount\AppData\Temp. A DistributionAgentAccount é a conta na qual o Agente de Distribuição está em execução.

Se a conta que está em execução SQL Server Agent não tiver acesso de gravação à pasta COM, o Agente de Distribuição falhará quando estiver em execução como um trabalho. Se você executar o Agente de Distribuição de uma linha de comando usando uma conta que não tem 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 para a conta que está executando o serviço SQL Server Agent. Se você executar o Agente de Distribuição de uma linha de comando, conceda permissões de gravação à pasta COM para a conta que você usa para executar o Agente de Distribuição.

Observação

Se você alterar a conta atribuída ao trabalho de replicação, a conta deverá ter permissões de gravação para a pasta COM.

Se você ainda encontrar esse problema intermitentemente depois de seguir estas etapas, verifique se a pasta COM será 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".