Задача очистки плана обслуживания выполняется успешно, но не удаляет файлы?

#sql-server #sql-server-2005 #maintenance-plan

#sql-server #sql-server-2005 #план обслуживания

Вопрос:

Это сводит меня с ума. Я перепробовал все предложения и ничего не вышло.

Это абсолютно не работает. Все файлы по-прежнему там.

Задание выполняется успешно, но файлы не удаляются.

введите описание изображения здесь

Комментарии:

1. Почему по этому вопросу проводятся закрытые голосования? Не голосуйте просто за закрытие без объяснения причин.

2. можете ли вы показать нам полный путь к файлу из плана и сравнить его с путем к файлу, по которому будут создаваться резервные копии? Кроме того, убедитесь, что задача не отключена в плане, и убедитесь, что она подключена к задаче резервного копирования.

Ответ №1:

Недавно я столкнулся с такой же проблемой, и это было связано с правами доступа к папке. Проверить достаточно просто:

  1. Проверьте свойства недавнего файла bak или trn, безопасность и выясните, кто является владельцем.
  2. Теперь проверьте свойства папки резервной копии, безопасность и посмотрите, имеет ли владелец файла из шага 1 достаточно эффективных разрешений для удаления файлов. У учетной записи может быть достаточно средств только для создания и изменения, но не для удаления файлов.

Особенность заключается в том, что план всегда выполнялся «успешно», даже если он с треском проваливался. Вот почему учителя не должны позволять учащимся самостоятельно оценивать свои тесты. (ухмылка).

Ответ №2:

Под какой учетной записью это выполняется? Администратор домена, служба и т.д.?

Мне всегда было проще создать пакетное задание и использовать планировщик Windows для очистки файлов .bak в течение x недель. Можете ли вы просмотреть историю заданий и посмотреть, не удалось ли выполнить задачу, может быть, стоит также посмотреть средство просмотра событий на сервере.

Комментарии:

1. Как мне определить, под какой учетной записью она выполняется?

2. @Richard DesLonde Я забыл упомянуть, на каком пакете обновления вы находитесь?

3. 9.00.4266.00 Стандартная версия SP3 (64-разрядная версия)

Ответ №3:

Единственное решение, которое я смог найти, это взять SQL, сгенерированный из задачи очистки, и запустить его вместо SP, потому что угадайте, что??? SQL, который генерирует этот план, выполняется отлично!!!!!

Это код, который я использую для запуска, и он работает.

 ALTER PROCEDURE spUtility_delete_OldBackups
AS

DECLARE @date varchar(28)
SET @date = CONVERT(varchar(28),DATEADD(DAY, -5,GETDATE()))


EXECUTE master.dbo.xp_delete_file 0, 'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupEEIDW', 'bak', @date,1

EXECUTE master.dbo.xp_delete_file 0,'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupEEIDW','diff', @date,1

EXECUTE master.dbo.xp_delete_file 0,'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackupEEIDW','trn', @date,1
  

Комментарии:

1. Ну, это должно указывать на то, что это проблема с разрешениями, не так ли?

2. @Martin: Есть какие-нибудь подсказки относительно того, как устранить проблему с разрешениями?

3. У меня в голове не укладывается. Если вы можете воспроизвести эту проблему на компьютере разработчика, я бы, вероятно, попробовал запустить Profiler, чтобы проверить, вызывались ли master.dbo.xp_delete_file процедуры, а затем procmon просмотреть все ошибки отказа в доступе в файловой системе (и какой учетной записи было отказано в доступе).

Ответ №4:

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

Комментарии:

1. Задание выполняется успешно, но файлы не удаляются.