Поделиться через


Сообщение об ошибке "Агент распространителя не удалось создать временные файлы" при запуске агент распространения в SQL Server

Эта статья помогает обойти проблему при запуске агент распространения в SQL Server.

Исходная версия продукта: SQL Server
Исходный номер базы знаний: 956032

Симптомы

На экземпляре Microsoft SQL Server, установленном на компьютере под управлением Windows Server, настраивается публикация транзакций. Профиль используется Distribution Profile for OLEDB streaming для агент распространения. При запуске агент распространения вы получите сообщение об ошибке, например следующее:

Агент распространителя не удалось создать временные файлы в каталоге C:\Program Files\Microsoft SQL Server\<nnn>\COM . Системный возвращен код ошибки 5.

Примечание.

<nnn> определяет версию SQL Server. Дополнительные сведения см. в разделе Расположение файлов для экземпляра по умолчанию и именованных экземпляров SQL Server.

Причина

При использовании Distribution Profile for OLEDB streaming профиля для агент распространения или потоковой передачи OLEDB в пользовательском профиле до SQL Server 2019 агент распространения создает временные файлы в каталоге: C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Примечание.

В SQL Server 2019 и более поздних версиях эти временные файлы теперь создаются под учетной записью, выполняющей агент распространения, поэтому вместо каталога C:\Program Files\Microsoft SQL Server\<nnn>\COM эти файлы будут находиться в каталоге C:\Users\DistributionAgentAccount\AppData\Temp. Это DistributionAgentAccount учетная запись, в которой выполняется агент распространения.

Если у учетной записи, работающей агент SQL Server нет доступа на запись к com-папке, агент распространения завершится ошибкой при выполнении в качестве задания. Если вы запускаете агент распространения из командной строки с помощью учетной записи, которая не имеет доступа на запись к папке COM, произойдет тот же сбой.

Обходное решение

Чтобы обойти эту проблему, предоставьте разрешения на запись в папку COM для учетной записи, работающей в службе агент SQL Server. Если вы запускаете агент распространения из командной строки, предоставьте разрешения на запись в папку COM для учетной записи, используемой для запуска агент распространения.

Примечание.

При изменении учетной записи, назначенной заданию репликации, учетная запись должна иметь разрешения на запись в com-папку.

Если эта проблема по-прежнему возникает периодически после выполнения этих действий, убедитесь, что папка COM исключена из любой антивирусной проверки, которая происходит в системе.

Дополнительная информация

Код ошибки 5 указывает, что ошибка "доступ запрещен".