Назад | Перейти на главную страницу

Задача очистки обслуживания SQL «Успех», но не удаление файлов

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

Версия 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-сервера на другой диск, переместив все существующие файлы резервной копии в новое место в процессе.

Впоследствии файлы принадлежали моему пользователю с правами администратора и не могли быть удалены пользователем службы базы данных.

Чтобы это легко исправить:

  1. Откройте свойства резервной корневой папки
  2. Перейти к Security вкладку и нажмите Advanced
  3. Установите правильного владельца, в моем случае SQL Engine.

    Обязательно включите Replace owner on subcontainers and objects флажок!
  4. Нажмите ОК, дождитесь завершения процесса и закройте все диалоги.

Теперь план обслуживания должен снова иметь возможность удалять файлы резервных копий.