Как сохранить определенное количество резервных копий в файле резервной копии - PullRequest
1 голос
/ 01 сентября 2009

У меня есть ежедневное расписание резервного копирования моей базы данных в sqlserver 2005. Теперь это выглядит так:

BACKUP DATABASE [db1] TO  DISK = N'D:\SqlServer\Backup\db1.bak' WITH  NOINIT ,  NOUNLOAD ,  NAME = N'db1backup',  NOSKIP ,  STATS = 10,  NOFORMAT

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

1 Ответ

1 голос
/ 01 сентября 2009

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

declare @init_option nvarchar(50)
declare @cmd nvarchar(1000)
set @init_option = 'NOINIT'
IF (datename(dw, getdate())) = 'Sunday' set @init_option = 'INIT'
set @cmd ='BACKUP DATABASE [db1] TO  DISK = N''D:\SqlServer\Backup\db1.bak'' WITH  ' + @init_option + ' ,  NOUNLOAD ,  NAME = N''db1backup'',  NOSKIP ,  STATS = 10,  NOFORMAT'
EXECUTE(@cmd)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...