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

Как я могу удалить дифференциальные резервные копии SQL Server и резервные копии журналов до самой ранней полной резервной копии, оставшейся на диске?

Когда я удаляю полную резервную копию, я хотел бы удалить все файлы, которые становятся бесполезными после удаления этой полной резервной копии: в частности, дифференциальные резервные копии и резервные копии журналов, которые происходят до самой ранней полной резервной копии, которая все еще находится на диске. У кого-нибудь есть способ сделать это (возможно, сценарий PowerShell)?

Вот сценарий T-SQL, который я написал для автоматизации резервного копирования, который удаляет все полные резервные копии, кроме указанного, и любые дифференциальные резервные копии, которые были созданы до самой старой сохраненной полной резервной копии. Он полагается на разность, имеющую то же расширение файла и имя файла, к которому добавлено "_Diff". У меня также есть один для файлов журнала.

Удалить полные / дифференциальные резервные копии: http://www.sqlsoldier.com/wp/wp-content/uploads/Scripts/dba_DeleteDBBackups.sql Удалить резервную копию журнала: http://www.sqlsoldier.com/wp/wp-content/uploads/Scripts/dba_DeleteLogBackups.sql

Я использую для этого процесс CLR, разместил код на http://sqlblog.com/blogs/merrill_aldrich/archive/2009/07/21/hole-in-your-backup-sequence.aspx

PowerShell сейчас может быть лучше, но было бы просто перенести код C # в PowerShell.

Если вы создаете план обслуживания, вы можете включить в подпланы задачи резервного копирования. А в SubPlan для резервного копирования базы данных (полные резервные копии, резервные копии diff, tlog) у вас может быть задача обслуживания очистки. Для каждого типа резервного копирования вы можете указать, как долго вы хотите хранить файлы. Например, вы можете хранить все резервные копии в течение 7 дней. По истечении этих 7 дней баки и трнсы могут быть удалены.

Я считаю, что это должно достичь того, что вам нужно.