У меня есть план обслуживания для баз данных на сервере. Как часть резервного копирования - это задача очистки при обслуживании.
Версия SQL 2008
«Успешная» задача устанавливается как:
Delete backup files
Correct folder (same address as the backup task)
File extension: bak (NOT .bak)
Delete files older than: 20 Hour(s)
У меня есть другие аналогичные задачи по очистке, которые выполняются в том же плане обслуживания, и они работают нормально. Этот план отлично работал в прошлом, я только заметил, что вчера вечером он сообщил об «успехе», а остальная часть плана продолжена, однако файл от двухдневной давности все еще остается.
Я проверил похожие вопросы, например этот вопрос, и это не тот случай, поскольку моя задача обслуживания работала нормально два дня назад и последние несколько недель:
Проверьте файл, чтобы убедиться, что это действительный файл резервной копии. Если файл поврежден или каким-либо иным образом поврежден, процесс удаления файла ничего не даст. Вы можете проверить это, выполнив:
RESTORE HEADERONLY FROM DISK='d:\Path\To\Your\File.bak'
Другая возможная причина:
Проверьте владельца файлов резервных копий, которые не удаляются.
Я переместил резервную копию SQL-сервера на другой диск, переместив все существующие файлы резервной копии в новое место в процессе.
Впоследствии файлы принадлежали моему пользователю с правами администратора и не могли быть удалены пользователем службы базы данных.
Чтобы это легко исправить:
Security
вкладку и нажмите Advanced
SQL Engine
.Replace owner on subcontainers and objects
флажок!Теперь план обслуживания должен снова иметь возможность удалять файлы резервных копий.