Резервное копирование сервера Sql в UNC

Я создаю план обслуживания на моем сервере SQL Server 2005. Резервное копирование должно быть записано на другой сервер. Для этого я использую UNC-путь. Пользователь, выполняющий задания SQL Agent, имеет полный доступ к другому серверу. Он администрируется на обоих серверах.

Проблема заключается в том, что этот оператор терпит неудачу (имеет правильное имя сервера):

EXECUTE master.dbo.xp_create_subdir N '\\ ServerName\C $\ SqlServerBackup\Test'

Ошибка, которую я получаю: Msg 22048, уровень 16, состояние 1, строка 0 xp_create_subdir() возвратила ошибку 123, 'Имя файла, имя каталога или синтаксис метки тома неверны.'

Кто-нибудь знает, в чем проблема?

Ответы

Ответ 1

После того, как эта проблема возникла сама, но ни одно из вышеперечисленных решений не было достаточно ясным, я подумал, что опубликую более четкий ответ. Ошибка на самом деле не имеет ничего общего с синтаксисом - она ​​полностью связана с разрешениями. Важно то, что именно учетная запись службы SQL Server, а не учетная запись агента SQL Server, пытается войти в систему для создания каталога. Вы можете проверить средство просмотра событий на целевом сервере и посмотреть журнал безопасности, чтобы увидеть неудавшиеся логины из учетной записи SQL Server на другом компьютере (мой был запущен как локальный администратор).

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

Ответ 2

Агент SQL фактически не запускает резервные копии, он способен выполнять команды в SQL Server, который выполняет резервное копирование. Тем не менее, учетная запись службы SQL Server является той, которая нуждается в разрешениях для UNC-ресурса.

Однако, я думаю, что существует проблема с процедурой xp_create_subdir. Я собираюсь прекратить использовать планы обслуживания, потому что я получаю эту ту же ошибку каждый раз в то время. Никакие разрешения не меняются, и это "обычно" работает, но "обычно" не сокращает его.

Ответ 3

Если вы используете службу агента SQL Server и/или SQL Server как "LocalSystem" , но неспособны изменить учетные записи агента SQL Server и SQL Server на учетные записи домена, попробуйте следующее:

  • Если вы используете учетную запись/учетные данные прокси-сервера агента SQL Server для выполнения части задачи и резервного копирования с помощью агента SQL, в пункте назначения резервного копирования UNC в разрешениях общего доступа и NTFS, разрешайте разрешения Full/Modify (соответственно) поскольку они действительно используются в одной точке в процессе установления соединений или, по крайней мере, в заданиях резервного копирования SQL, которые я пытался (по крайней мере, согласно журналам безопасности). К сожалению, это либо не так, либо я не нашел способ выполнить определенные задачи службы SQL Server с помощью учетных записей прокси, которые вы можете выполнить с помощью чисто задачи агента SQL (как указано в предыдущих сообщениях User55852 и ZaDDaZ).

  • На сервере назначения резервного копирования UNC в разрешениях общего доступа и NTFS предоставите разрешения Full/Modify (соответственно) для учетной записи Компьютер SQL-сервера (исходного сервера).


Это работает для тех случаев, когда SQL Services запускаются как "LocalSystem" , но для доступа к другому серверу требуется сбросить резервную копию.

И, конечно, лучшие практики говорят о том, что для каждой службы SQL у них должна быть своя собственная учетная запись домена с наименьшей привилегией, которая вместо добавления учетной записи компьютера на сервер, которая предоставляет гораздо больший доступ к этой доле, чем должна быть разрешена - в основном что-либо, выполняемое как учетная запись компьютера или "LocalSystem" .

Ответ 4

Я видел эту ошибку в истории плана обслуживания.

Ошибка операционной системы 3 (система не может найти указанный путь). BACKUP DATABASE завершается аномально. Возможные причины сбоя: проблемы с запросом, свойство ResultSet неправильно установлены, параметры установлены неправильно или соединение установлено неправильно.

Я попытался запустить первый этап резервного копирования, где он создавал каталог для общего доступа. Я получил отказ в доступе.

Наконец, я дал полные разрешения учетной записи службы, в которой выполнялся запуск SQL Agent и план обслуживания.

Ответ 5

Проверьте, выполняется ли его учетная запись SqlAgent. Обычно это system\NetworkService ant у него нет прав доступа на других компьютерах.

Либо предоставить права на запись всем пользователям на пути UNC, либо в панели управления/службах изменить учетную запись, используемую для SqlAgent.

Ответ 6

Разве это не отсутствие двойной обратной косой черты перед именем сервера?

Ответ 7

Я выполнил резервное копирование до UNC mmany раз. Убедитесь, что это не проблема с полномочиями с учетной записью, в которой работают SQL-сервер и SQL-агент. Я бы не вернулся к скрытому доходу администратора, как, может быть, к $, что вызвало проблему. Создайте общий ресурс и резервное копирование. \server\share НЕ\сервер\c $\ папка