Очистка после обслуживания sql не удаляет файлы
Result is column IsDamaged = 0
Я также пытался удалить план работы и обслуживания и воссоздать его, но безуспешно.
задан 16 марта '11, 12:03
Диалоговое окно «Создание соединения»
Имя соединения
Введите имя нового соединения.
Выберите или введите имя сервера
Выберите сервер для подключения при выполнении этой задачи.
.
Выберите для просмотра списка доступных серверов.
Введите данные для входа на сервер
Укажите способ проверки подлинности на сервере.
Использовать встроенную безопасность Windows
Подключение к экземпляру компонента Компонент SQL Server Database Engine с использованием проверки подлинности Windows.
Использовать указанные имя пользователя и пароль
Подключение к экземпляру Компонент SQL Server Database Engine с использованием проверки подлинности SQL Server. Этот параметр недоступен.
User name
Укажите имя входа, используемое при проверке подлинности SQL Server . Этот параметр недоступен.
Пароль
Укажите используемый при проверке подлинности пароль. Этот параметр недоступен.
Это сводит меня с ума. Я испробовал все предложения и не пошел.
Это абсолютно не работает. Файлы все еще там.
Задание выполняется успешно, но файлы не удаляются.
Почему по этому поводу мало голосов? Не голосуйте за закрытие без объяснения причин. - richard
Можете ли вы показать нам полный путь к файлу из плана и сравнить его с путем к файлу, по которому собираются резервные копии? Кроме того, убедитесь, что задача не отключена в плане, и убедитесь, что она подключена к задаче резервного копирования. - DForck42
Диалоговое окно «Создание соединения»
Имя соединения
Введите имя нового соединения.
Выберите или введите имя сервера
Выберите сервер для подключения при выполнении этой задачи.
.
Выберите для просмотра списка доступных серверов.
Введите данные для входа на сервер
Укажите способ проверки подлинности на сервере.
Использовать встроенную безопасность Windows
Подключение к экземпляру компонента Компонент SQL Server Database Engine с использованием проверки подлинности Windows.
Использовать указанные имя пользователя и пароль
Подключение к экземпляру Компонент SQL Server Database Engine с использованием проверки подлинности SQL Server. Этот параметр недоступен.
User name
Укажите имя входа, используемое при проверке подлинности SQL Server . Этот параметр недоступен.
Пароль
Укажите используемый при проверке подлинности пароль. Этот параметр недоступен.
С помощью диалогового окна Задача «Очистка после обслуживания» можно удалить старые файлы, связанные с планами обслуживания, включая текстовые отчеты, созданные планами обслуживания, и файлы резервных копий базы данных.
Задача «Очистка после обслуживания» автоматически не удаляет файлы во вложенных папках указанного каталога. Это снижает вероятность того, что злоумышленник сможет удалить файлы с помощью задачи «Очистка после обслуживания». Если нужно удалять файлы во вложенных папках первого уровня, установите флажок Включить вложенные папки первого уровня.
Связанные задачи
Дополнительные сведения о настройке свойств этих свойств в конструкторе Integration Services см. в разделе Задание свойств задач или контейнеров.
С помощью диалогового окна Задача «Очистка после обслуживания» можно удалить старые файлы, связанные с планами обслуживания, включая текстовые отчеты, созданные планами обслуживания, и файлы резервных копий базы данных.
Задача «Очистка после обслуживания» автоматически не удаляет файлы во вложенных папках указанного каталога. Это снижает вероятность того, что злоумышленник сможет удалить файлы с помощью задачи «Очистка после обслуживания». Если нужно удалять файлы во вложенных папках первого уровня, установите флажок Включить вложенные папки первого уровня.
Настройка задачи «Очистка после обслуживания»
Свойства задаются с помощью конструктора служб Integration Services . Эта задача находится в разделе Задачи плана обслуживания****области элементов в конструкторе служб Integration Services .
Дополнительные сведения о свойствах, которые можно задать в конструкторе служб Integration Services , см. в следующем разделе:
Параметры
Соединение
Отображает текущее соединение.
Создать
Создать новое соединение с сервером для его использования при выполнении этой задачи. Диалоговое окно Создание соединения описано ниже.
Файлы резервных копий
Удаляет файлы резервной копии.
Текстовые отчеты плана обслуживания
Удаляет текстовые отчеты предыдущих запусков планов обслуживания.
Удалить определенный файл
Удаляет определенный файл, указанный в поле Имя файла .
Имя файла
Путь к удаляемому файлу и его имя.
Удалить из папки файлы с определенным расширением
Удаляет все файлы с определенным расширением в указанной папке. Позволяет удалить сразу несколько файлов, например все файлы резервных копий с расширением BAK из папки «Вторник».
Папка
Путь к папке, содержащей удаляемые файлы, и ее имя.
Расширение файла
Введите расширение удаляемого файла. Не добавляйте другие символы до или после расширения (например, укажите BAK или TRN).
Включить вложенные папки первого уровня
Удаляет файлы с расширением, заданным в поле Расширение файла , из вложенных папок первого уровня относительно поля Папка.
Удалять файлы в зависимости от их возраста во время выполнения задачи
Задайте минимальный возраст удаляемых файлов, указав числовое значение и единицу времени в поле Удалить все файлы старше чем .
Удалить все файлы старше чем
Задайте минимальный возраст удаляемых файлов, указав числовое значение и временную единицу (день, неделя, месяц или год). Файлы, старше указанного временного интервала, будут удалены.
Просмотр T-SQL
Просмотрите инструкции Transact-SQL , выполняемые для данной задачи по отношению к серверу, на основе выбранных параметров.
Если количество затронутых объектов велико, построение этого отображения может занять значительное время.
4 ответы
Недавно я столкнулся с той же проблемой, и это было связано с разрешениями на папку. Достаточно легко проверить:
- Проверьте свойства последнего файла bak или trn, безопасность и выясните, кто является владельцем.
- Теперь проверьте свойства ПАПКИ резервной копии, безопасность и посмотрите, есть ли у владельца ФАЙЛА из шага 1 достаточно эффективных разрешений для удаления файлов. В учетной записи может быть достаточно только для создания и изменения, но не для удаления файлов.
Примечательно то, что план всегда выполнялся «успешно», даже если он с треском проваливался. Вот почему учителя не должны позволять ученикам выставлять собственные тесты. (ухмылка).
Под какой учетной записью он работает? Администратор домена, службы и т. Д.?
Мне всегда было проще создать пакетное задание и использовать планировщик Windows для очистки файлов .bak за определенное количество недель. Можете ли вы посмотреть историю заданий и узнать, не удалось ли выполнить задачу или выполнить ее? Возможно, стоит также взглянуть на средство просмотра событий на сервере.
ответ дан 14 апр.
Как узнать, под какой учетной записью он работает? - Ричард
@Richard DesLonde Я забыл упомянуть, какой у вас пакет обновления? - ДжонХ
9.00.4266.00 SP3 Standard Edition (64-разрядная версия) - Ричард
Единственное решение, которое я смог найти, это взять SQL, который был сгенерирован из задачи очистки, и вместо этого запустить его в SP, потому что угадайте, что . SQL, который генерирует этот план, работает отлично .
Это код, который я использую для запуска, и он работает.
ответ дан 14 апр.
Что ж, это должно указывать на то, что это проблема с разрешениями, не так ли? - Мартин Смит
Не с ума сойти. Если вы можете воспроизвести эту проблему на машине разработчика, я бы, вероятно, попробовал запустить Profiler, чтобы проверить, что master.dbo.xp_delete_file были вызваны процедуры, а затем procmon чтобы увидеть любые ошибки отказа в доступе в файловой системе (и какой учетной записи было отказано в доступе). - Мартин Смит
У меня есть аналогичное задание, которое выполняется без проблем, под какой учетной записью работает SQLServerAgent, эти планы обслуживания выполняются как SQLServerAgent, если контекст безопасности, в котором работает SQLServerAgent, не имеет соответствующих разрешений, это задание завершится ошибкой, должна быть какая-то история заданий это расскажет вам больше.
Параметры
Соединение
Отображает текущее соединение.
Создать
Создать новое соединение с сервером для его использования при выполнении этой задачи. Диалоговое окно Создание соединения описано ниже.
Файлы резервных копий
Удаляет файлы резервной копии.
Текстовые отчеты плана обслуживания
Удаляет текстовые отчеты предыдущих запусков планов обслуживания.
Удалить определенный файл
Удаляет определенный файл, указанный в поле Имя файла .
Имя файла
Путь к удаляемому файлу и его имя.
Удалить из папки файлы с определенным расширением
Удаляет все файлы с определенным расширением в указанной папке. Позволяет удалить сразу несколько файлов, например все файлы резервных копий с расширением BAK из папки «Вторник».
Папка
Путь к папке, содержащей удаляемые файлы, и ее имя.
Расширение файла
Введите расширение удаляемого файла. Не добавляйте другие символы до или после расширения (например, укажите BAK или TRN).
Включить вложенные папки первого уровня
Удаляет файлы с расширением, заданным в поле Расширение файла , из вложенных папок первого уровня относительно поля Папка.
Удалять файлы в зависимости от их возраста во время выполнения задачи
Задайте минимальный возраст удаляемых файлов, указав числовое значение и единицу времени в поле Удалить все файлы старше чем .
Удалить все файлы старше чем
Задайте минимальный возраст удаляемых файлов, указав числовое значение и временную единицу (день, неделя, месяц или год). Файлы, старше указанного временного интервала, будут удалены.
Просмотр T-SQL
Просмотрите инструкции Transact-SQL , выполняемые для данной задачи по отношению к серверу, на основе выбранных параметров.
Если количество затронутых объектов велико, построение этого отображения может занять значительное время.
10 ответы
Попробуйте эти проверки:
- Используйте *. * Для расширения файла или bak без точки, оба из которых я нашел работоспособными, если другие проблемы тоже верны.
- Убедитесь, что путь - это просто путь к тому месту, где находятся ваши резервные копии, но с обратной косой чертой в конце.
- Убедитесь, что проверка отмечена галочкой, когда вы создаете резервную копию в первую очередь.
использование расширения bak - это то, что сработало для меня. Без точек и звездочек - Джао
У нас была эта проблема - изменили путь на "\", а также изменили спецификацию файла на ".". Это сработало. - Мэтт Доуди
для меня, когда я сменил ежедневный на еженедельный, он начал работать. Кто-нибудь знает решение этого? - Ahsan
Часто это вызвано проблемами с разрешением. Задача очистки, похоже, не регистрирует ничего полезного, если разрешения не позволяют учетной записи, под которой выполняется шаг, удалять файлы.
Вы можете проверить это следующим образом:
- В SQL Server Management Studio щелкните правой кнопкой мыши план обслуживания и выберите «Изменить».
- Найдите задачу «Очистка при обслуживании», используемую для удаления ваших файлов BAK, и нажмите кнопку «Просмотреть T-SQL». Скопируйте скрипт в буфер обмена - это будет что-то вроде «EXECUTE master.dbo.xp_delete_file . »
- Подключитесь к серверу, используя учетную запись Windows, у которой есть необходимые разрешения для папки, содержащей резервные копии, и запустите SQL
- Если файлы BAK очищаются, это означает, что задача плана обслуживания настроена правильно и у вас есть проблема с разрешениями.
- В Management Studio откройте окно свойств задания («Агент SQL Server»> «Задания»), нажмите кнопку «Изменить» на первом шаге. В разделе «Запуск от имени» будет указано, какая учетная запись выполняет задание.
ответ дан 25 мар '14, в 17:03
В моем случае это была проблема с разрешением. Спасибо, что помогли мне разобраться! - Брайан Бедард
Была такая же проблема. Виновником является расширение .Bak. Измените его на Bak, и все будет хорошо.
Кого-то в Microsoft нужно линчевать. Их стандарт заключается в том, что имена файлов не чувствительны к регистру, но с сохранением регистра - я потратил 6 часов гонится за этим. - поджо-гай
Ты чемпион. Моя проблема была в расширении. .bak не работает, однако без полной остановки bak сам по себе функционирует как мастер кунг-фу, преподающий свой новейший класс. КАК ЧЕМПИОН. Престижность тебе - Гави Греф
Убедитесь, что вы создали планы обслуживания на правильном сервере SQL. Чтобы быть более подробным,
Если у вас есть SQL Server 2005 и вы создаете файл maint. согласно планам этого SQL Server 2005, вы сможете ТОЛЬКО «очищать» (удалять) те резервные копии (bak) и журнал транзакций (trn), созданные / скопированные с сервера SQL Server 2005. Если вы попытались очистить эти bak или trn из 2008, 2008 R2, 2012 или новее, это не сработает. (Из-за информации заголовка файла). То есть 2005 не распознает эти файлы в формате 2008 или новее!
Однако вы всегда можете очистить эти файлы, создав файл maint. планы под SQL Server 2008 и "очистить" эти файлы с 2005 ~ 2012 (проверено).
Это означает, что 1. 2005 может очищать только bak / trn в формате 2005 2. 2008 может очищать формат 2005 ~ 2012
У меня не было возможности протестировать 2000 (слишком старый) или 2014 (слишком новый). Но я думаю, что 2014 год должен работать с 2008 года.
Создан 17 июля '14, 17:07
Что ж, хорошо, что xp_delete_file справляется со своей задачей. Потому что у людей может быть другой файл * .bak, но он не имеет ничего общего с SQL-сервером (может быть, другой файл программного обеспечения имеет такое же расширение). Читая заголовок файла, он удаляет только SQL Server / распознанный файл. - Chjquest
Я положил мне 2 цента, я только что решил эту проблему, у меня новое развертывание с SQL 2012. Задания резервного копирования работают правильно, однако задачи очистки как для журналов, так и для старых резервных копий ничего не сделали, хотя были успешно завершены.
Проблема, на мой взгляд, среди этих глупостей, я установил расширение как .bak и .txt , однако, как только я изменил их на .BAK и .TXT (в столицах) заработало.
Надеюсь, это поможет кому-то, кто устраняет аналогичную проблему.
Создан 28 июля '14, 10:07
У меня раньше были подобные проблемы с работой. Случаи, с которыми я столкнулся, когда он не удалялся, были связаны с тем, что местоположение не было явно установлено, когда я проходил через графический интерфейс. Даже если я ничего не менял, когда местоположение пути не было конкретно указано, казалось, что он не знал, где искать, чтобы обработать удаление, поэтому никаких удалений никогда не происходило. Резервное копирование выполнялось нормально, и все было хорошо, но не выполнялась очистка, как указано в мастере / форме.
ответ дан 16 мар '11, в 15:03
Точно, я успешно файлы .bak, но не могу ОЧИСТИТЬ те же файлы .bak. Я попытался УДАЛИТЬ КОНКРЕТНЫЙ ФАЙЛ вместо файлов в папке и получил эту ошибку: Выполнение запроса «EXECUTE master.dbo.xp_delete_file 0, N'D: \\ Program F . » завершилось ошибкой со следующей ошибкой: «Ошибка при выполнении расширенной хранимой процедуры xp_delete_file: указанный файл не является файлом резервной копии SQL Server.». Возможные причины сбоя: проблемы с запросом, свойство «ResultSet» настроено неправильно, параметры установлены неправильно или соединение не установлено правильно. Как мне проверить путь, о котором вы упомянули? - Alex
Убедитесь, что в разделе «Задачи очистки» все указано правильно. Полное имя папки и расширение файла. Раньше я видел, что он разрешает пустые поля (предполагая значения по умолчанию) и не запускает / не очищает должным образом. - Тиамин
У меня была такая же проблема, и я тоже пытался ее решить. Думаю, я пробовал каждую комбинацию, но это не сработало. Обратите внимание, что xp_delete_file недокументирован и явно содержит много ошибок.
Но что я сделал и могу вам помочь, так это изменить шаг на шаг PowerShell.
Вы можете использовать следующее для удаления файлов старше 30 дней
get-childitem c: \ sqlbackup -recurse | где .lastwritetime -lt (дата получения) .adddays (-30) -and -not $.psiscontainer> |%
Обратите внимание на -whatif, который добавлен, чтобы вы могли протестировать.
Но в моем случае этого было недостаточно. При подходе PowerShell возникла проблема с правами. Учетная запись, на которой запущен агент SQL, не имела прав на удаление файлов. При правильной настройке прав все работало как шарм.
Задача «Очистка после обслуживания» удаляет файлы, относящиеся к планам обслуживания, включая файлы резервных копий баз данных и отчеты, созданные планами обслуживания. Дополнительные сведения см. в разделах Планы обслуживания и Резервное копирование и восстановление баз данных SQL Server.
С помощью задачи «Очистка после обслуживания» пакет может удалять файлы резервных копий или отчеты планов обслуживания на указанном сервере. Задача «Очистка после обслуживания» имеет параметр удаления специфических файлов или удаления группы файлов в папке. При необходимости можно указать расширение удаляемых файлов.
При настройке задачи «Очистка после обслуживания» для удаления файлов резервных копий по умолчанию установлено расширение файла BAK. Для файлов отчета расширение по умолчанию — TXT. При необходимости расширение можно изменить; единственное ограничение: расширение должно иметь меньше 256 символов.
Если необходимо удалить старые ненужные файлы, задача «Очистка после обслуживания» может быть настроена для удаления файлов, существующих определенный период времени. Например, задача может быть настроена на файлы, существующие дольше двух недель. Можно указать давность удаляемых файлов, используя дни, недели, месяцы и годы. Если минимальный срок для удаления файлов не устанавливается, удаляются все файлы указанного типа.
В отличие от ранних версий задачи «Очистка после обслуживания» версия SQL Server этой задачи не удаляет автоматически файлы во вложенных каталогах указанной папки. Это ограничение сокращает контактную зону любой атаки, использующей функции задачи «Очистка после обслуживания» для умышленного удаления файлов. Для удаления вложенных папок первого уровня необходимо выбрать это действие, установив флажок Включить вложенные папки первого уровня в диалоговом окне Задача "Очистка после обслуживания" .
Читайте также: