#sql-server #sql-server-2005 #maintenance-plan
#sql-server #sql-server-2005 #план обслуживания
Вопрос:
Это сводит меня с ума. Я перепробовал все предложения и ничего не вышло.
Это абсолютно не работает. Все файлы по-прежнему там.
Задание выполняется успешно, но файлы не удаляются.
Комментарии:
1. Почему по этому вопросу проводятся закрытые голосования? Не голосуйте просто за закрытие без объяснения причин.
2. можете ли вы показать нам полный путь к файлу из плана и сравнить его с путем к файлу, по которому будут создаваться резервные копии? Кроме того, убедитесь, что задача не отключена в плане, и убедитесь, что она подключена к задаче резервного копирования.
Ответ №1:
Недавно я столкнулся с такой же проблемой, и это было связано с правами доступа к папке. Проверить достаточно просто:
- Проверьте свойства недавнего файла bak или trn, безопасность и выясните, кто является владельцем.
- Теперь проверьте свойства папки резервной копии, безопасность и посмотрите, имеет ли владелец файла из шага 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. Задание выполняется успешно, но файлы не удаляются.