Резервное копирование SQL Ola Hallengren на Сетевое Местоположение, не работающее

Я настроил Решение для Обслуживания SQL Server Ola Hallengren на нескольких серверах SQL Express (2 008 - 2012 R2) за прошлые несколько лет. Я недавно начал иметь проблемы с компонентом сетевого резервирования на всех них новый. У меня была эта работа над несколькими серверами в прошлом, таким образом, я знаю, что она может работать, но я не могу выяснить то, что препятствует тому, чтобы она работала теперь. Как интересное место, я не DBA и знаю почти ничего о SQL, который является, почему я здесь.

Проблема

На одном сервере в частности, я настроил график обслуживания приблизительно полтора года назад. Это делало резервные копии ночью на другой локальный сервер с помощью Пути UNC (и несколько других команд). Код для сценария следующие:

sqlcmd -E -S SERVER\INSTANCE -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = '\\techstore1.domain.local\Backups', @BackupType = 'FULL', @Verify = 'Y', @CheckSum = 'Y', @CleanupTime = 14" -b

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

Я попытался выполнить его в командной строке как сам и супер учетная запись полномочий. Это - ошибка, которую я получаю во всех случаях:

Msg 50000, Level 16, State 1, Server SERVER\INSTANCE, Procedure DatabaseBackup, Line 384
The directory \\techstore1.domain.local\Backups does not exist.

Msg 50000, Level 16, State 1, Server SERVER\INSTANCE, Procedure DatabaseBackup, Line 611
The documentation is available at http://ola.hallengren.com/sql-server-backup.html.

Что я сделал

Очевидно, SQL думает, что сетевое местоположение не существует, таким образом, я попробовал то, что я могу, чтобы проверить, что весь материал сетевой стороны в порядке. Я вытянул новую копию сценария и воссоздал все объекты и задания. Я проверил, что другие сценарии (проверки целостности, статистические обновления, и т.д.) работают. Я создал сценарий, который использует те же учетные данные в качестве резервного сценария для выполнения xcopy локальных резервных копий на целевой сервер, таким образом, у меня есть надлежащие учетные данные доли/NTFS. Та учетная запись является учетной записью домена (AD), конкретно созданный для резервных копий SQL. Я могу скопировать локально (с той учетной записью), таким образом, у меня есть полномочия базы данных. Я могу перейти к доле как резервная учетная запись с помощью Windows Explorer. Я могу вручную скопировать файлы в удаленное местоположение с помощью Windows Explorer с помощью резервной учетной записи.

Я получаю эту ту же проблему о нескольких других сетях также, которая является тем, что оказалось мной к SF. Я - в 2008 R2 и 2 012 доменов, все серверы являются доменными участниками без любых соответствующих ошибок. Серверы являются 2 008 R2 и 2 012 Стандартными машинами R2. Я чувствую, что что-то, должно быть, изменилось на стороне SQL, которую я не могу диагностировать, чтобы это произошло в 3 различных сетях и нескольких серверах. Я использовал супер основные команды - отъезд проверки и очистки от задания - и получаю ту же ошибку. Я усилил команды в качестве примера на сайте Ola как тест также с теми же результатами. Я попробовал его на совершенно новом SQL Server с базой данных базового теста, никакой любовью. Я использовал свой черный пояс в Google в течение нескольких дней с очень неутешительными результатами (возможно, я не знаю, что искать?).

Что я надеюсь получить

Я был бы очень признателен за путь к тестовым соединениям к сетевым ресурсам в Командной строке SQL или некоторых материалах, чтобы считать, что получит меня там. Я не возражаю читать; я - компетентный системный администратор, который является просто вне его глубины по этой проблеме. Я считал все на сайте Ola, и я практически использую команды в качестве примера дословно так или иначе (и они работали в течение нескольких месяцев!?). Я буду работать над этим прочь и над эти выходные, и любая справка или направление, которое любой может обеспечить, ценились бы в широком масштабе.

4
задан 19 June 2015 в 15:37
5 ответов

Проблема устранена. Я создал новое сетевое расположение, предоставив ему очень открытые разрешения (все: полный контроль), и резервное копирование работает в этом месте. Какой бы ни была проблема, она должна быть изолирована от разрешений NTFS / Share на целевом объекте. Я не знаю, почему у нескольких моих клиентов была одна и та же проблема, но это исправление сработало для всех из них. По сути, я воссоздал все свои резервные копии и снова поделился ими. Возможно, мы никогда не узнаем, что именно пошло не так.

Спасибо всем, кто нашел время, чтобы прочитать и подумать над этой проблемой.

1
ответ дан 3 December 2019 в 03:17

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

Кроме того, команда, в частности, должна быть SERVER \ INSTANCE , а не SERVER \ DATABASE :

sqlcmd -E -S SERVER\INSTANCE -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'USER_DATABASES', @Directory = '\\techstore1.domain.local\Backups', @BackupType = 'FULL', @Verify = 'Y', @CheckSum = 'Y', @CleanupTime = 14" -b

(Я не думаю , что вызовет ошибку вы получаете, но все же.)

2
ответ дан 3 December 2019 в 03:17

Следующее должно устранить эту проблему. Установите пользователя SQL Server И агент SQL Server на как общий ресурс, так и папки как «Изменить» для общего ресурса и «Изменить» для безопасности.

-1
ответ дан 3 December 2019 в 03:17

Я диагностировал аналогичную проблему при реализации скриптов Ола. Он будет работать на некоторых серверах, а не на других. Я бы получил:

"Msg 50000, Level 16, State 1, Procedure DatabaseBackup, Line 395 XXX The directory does not exist."

В моем случае проблема заключалась в том, что, хотя агент SQL работал под учетной записью домена с достаточными привилегиями, сам SQL Server не работал. В некоторых случаях он работал как локальная служба.

Как только я изменил SQL, чтобы он работал как домен с привилегиями, он заработал.

Я надеюсь, что это будет полезно для кого-то еще.

3
ответ дан 3 December 2019 в 03:17

Решение : перезапустите только службу агента SQL - это работает для нас.

Я столкнулся с той же проблемой в последние дни, хранимая процедура dbo.DatabaseBackup не может определить правильные атрибуты файла \ папки, поэтому возникла ошибка о том, что ваше хранилище резервных копий не может быть доступно для пользователя домена, на котором запущены службы агента SQL.

Фрагмент кода сохранен. процедура dbo.DatabaseBackup :

If object_ID(N'tempdb.dbo.#File_Results') is not NULL
    Drop table #File_Results;

CREATE TABLE #File_Results (
File_Exists int,
File_is_a_Directory int,
Parent_Directory_Exists int
)

DECLARE @FileName varchar(255)
SET @FileName='\\DBLIVEBACKUPS\Dump$$'

INSERT INTO #File_Results
EXEC Master.dbo.xp_fileexist @FileName

SELECT * FROM #File_Results

Мы получаем правильные параметры для разных сетевых расположений на одном сервере.

0
ответ дан 3 December 2019 в 03:17

Теги

Похожие вопросы